無論是在C#的桌面程序中還是在C#和ASP.NET的網頁開發中,數據庫連接是必不可少的一步,而且是關鍵的一步,是很多數據操作的基礎,今天連接總是遇到一個問題:
“在建立與服務器的連接時出錯。在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)”
網上的解決辦法全部都試了一個遍,但是還是錯誤依舊,終於請教了我們敬愛的陽哥。陽哥熟練的給我講解了其中的問題以及關於數據庫連接的技巧,受益匪淺,記錄下來留作資料吧。
1 .在web.config中有一個節點 <connectionStrings> </connectionStrings>是用來專門設置數據庫連接字的,使用該節點可以是編程變得很簡單。具體用法如下
connectionStrings 元素(ASP.NET 設置架構)
|
<connectionStrings > <add /> <clear /> <remove /> </connectionStrings> |
屬性和元素
下面幾部分描述了此元素的屬性、子元素和父元素。
屬性
只有那些由所有節元素繼承的屬性。有關更多信息,請參見節元素所繼承的常規屬性。
子元素
元素 |
說明 |
add |
向連接字符串集合添加名稱/值對形式的連接字符串。 |
clear |
移除所有對繼承的連接字符串的引用,僅允許那些由當前的 add 元素添加的連接字符串。 |
remove |
從連接字符串集合中移除對繼承的連接字符串的引用。 |
父元素
元素 |
說明 |
configuration |
指定公共語言運行庫和 .NET Framework 應用程序所使用的每個配置文件中均需要的根元素。 |
system.web |
指定配置文件中 ASP.NET 配置設置的根元素,幷包含用於配置 ASP.NET Web 應用程序和控制應用程序行爲方式的配置元素。 |
備註
connectionStrings 元素爲 ASP.NET 應用程序和 ASP.NET 功能指定數據庫連接字符串(名稱/值對的形式)的集合。
在以前的 ASP.NET 版本中,連接字符串存儲在 appSettings 中。在 ASP.NET 2.0 中,如會話、成員資格、個性化設置和角色管理器等功能均依賴於存儲在 connectionStrings 元素中的連接字符串。您還可以使用 connectionStrings 元素來存儲您自己的應用程序的連接字符串。
默認配置
除非在子配置文件中使用 clear 元素,否則將繼承父配置文件中包含的連接字符串。下面的默認 connectionStrings 元素是在 Machine.config 文件中配置的。
|
複製代碼 |
<connectionStrings> <add name="LocalSqlServer" connectionString="data source=./SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> </connectionStrings> |
示例
下面的代碼示例演示如何配置兩個連接字符串。第一個連接字符串可以由 ASP.NET 應用程序使用,而第二個連接字符串可以由稍後配置的 sqlCacheDependency 元素使用。
|
複製代碼 |
<configuration> <!-- Other configuration settings -->
<connectionStrings>
<add name="Sales" providerName="System.Data.SqlClient" connectionString= "server=myserver;database=Products;uid=<user name>;pwd=<secure password>" />
<add name="NorthWind" providerName="System.Data.SqlClient" connectionString="server=.;database=NorthWind;Integrated Security=SSPI" />
</connectionStrings>
<cache> <sqlCacheDependency enabled="true" pollTime="60000"> <databases> <add name="Northwind" /> </databases> </sqlCacheDependency> </cache>
</configuration> |
2. 在使用時應用一下語句
通過ConfigurationManager.ConnectionStrings獲得數據庫連接字符串用於連接數據庫
SqlConnection conn = new SqlConnection( ConfigurationManager.ConnectionStrings["DBC"].ConnectionString );
3. 如何確定數據庫連接字符串,可以說這個問題是這次錯誤關鍵點。原來我通過東拼西湊靠書上的描述確定字符串,這樣不同的數據庫版本MS
SQL的連接字符串都不一樣,勢必導致錯誤,於是需要VS 2008(VS2005)中供的工具
--》工具—》連接到數據庫
通過選取你要連接的服務器名和數據庫名,然後選擇高級,會彈出如下窗口
可以注意在最下面的 一個box裏面正式你所要連接的服務器 和數據庫的連接字符串,然後copy 一下,貼到web.config 中的connectionString中的value中