ASP.NET 2.0 提供更方便的配置檔案存取類別,具體可至 System.Configuration 命名空間查看。本文提供開發過程中常用的取得資料庫連接字串方法,為方便使用,封裝成方法供呼叫:
public string GetConnectionString( string _connectionStringsName )
{
System.Configuration.ConnectionStringSettingsCollection config = System.Configuration.ConfigurationManager.ConnectionStrings;
for (int i = 0 ; i < config.Count ; i++)
{
if (config[i].Name.Equals(_connectionStringsName, StringComparison.OrdinalIgnoreCase))
return config[i].ToString();
}
return String.Empty;
}
若 web.config 設定如下:
<connectionStrings>
<add name="ConnectionString1" connectionString="Persist Security Info=False;User ID=sa;Password=;Initial Catalog=DataBase1;Server=(local);" providerName="System.Data.SqlClient"/>
<add name="ConnectionString2" connectionString="Persist Security Info=False;User ID=sa;Password=;Initial Catalog=DataBase2;Server=(local);" providerName="System.Data.SqlClient"/>
</connectionStrings>
若寫成靜態類別方法,可用以下方式呼叫:
string ConnectString = XianhuiMengUtil.GetConnectionString("ConnectionString1");
另外,若遍歷時輸出,會發現多出一個設定項,因為 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>
這就是許多網友在論壇常問:為何程式會呼叫 SQLEXPRESS 資料庫的原因。若你的資料庫設定不正確或無法開啟,就會使用 SQLEXPRESS 資料庫。