由於寫好的套件會佈署在許多環境(網站、Windows服務、WCF、Batch Console),想取組態檔中(ConnectStrings)的資料庫名稱及應用程式名稱來給不同的參數。
哈!差點Parse字串,筆記取得的方式:
組態檔案內容:
<add name="CN" connectionString="Data Source=192.168.100.10;
Initial Catalog=TSQL2014;
User ID=ImDeveloper;Password=Passw0rd;Application Name=Web"
providerName="System.Data.SqlClient"/>
取得連線字串資訊程式碼:
- 1.先取得組態連線字串
- 2.將字串放入SqlConnectionStringBuilder
- 3.再利用Builder屬性取得所需。
//取得連線字串
SqlConnectionStringBuilder SqlConnBuilder = new SqlConnectionStringBuilder
(ConfigurationManager.ConnectionStrings["CN"].ConnectionString);
Console.WriteLine("資料庫伺服器:{0}", SqlConnBuilder.DataSource);
Console.WriteLine("資料庫名稱:{0}", SqlConnBuilder.InitialCatalog);
Console.WriteLine("帳號:{0}", SqlConnBuilder.UserID);
Console.WriteLine("應用程式名稱:{0}", SqlConnBuilder.ApplicationName);
Console.WriteLine("==========================================");
//列出所有連線字串屬性
foreach (var item in SqlConnBuilder.Keys)
{
Console.WriteLine("{0}:{1}", item, SqlConnBuilder[item as string]);
}
顯示資訊:
先前參加.NET進階課程時,許薰尹老師有分享一個Connectingstring的網站(The Connection Strings Reference),覺得很棒!
參考:
- SqlConnectionStringBuilder 類別:建立和管理 SqlConnection 類別使用之連接字串的內容
- 另一種透過DbProviderFactories.GetFactory的寫法
- HOW TO:從 Web.config 檔案讀取連接字串