Get SQL Server information from connection string via Web.Config / App.Config

公司的新Project 終於要Deploy到Server上給同事測試了…
由於還沒有想到怎樣可以很方便的Dynamic地把SSRS 的Database Connection
Live 轉為 Dev
所以我們便Replicate 了要用的Report 一個連接到Live的Server上的數據..
另一個連接到Dev 上..

LiveDev的數據是以Connection String來 選擇的
由於不知道怎樣可以Pass Connection string 到SSRS 的關係..
所以便要想想辦法..看看如何 找出 Web.Config / App.Config上的 Connection string 屬性
Server名, 便用者名稱.. Database名等等 來決正

我的例子是Database和 Username LiveDev Server都是一樣的..
不同之處只是在Server名上

如何可以在Connection String 上找出 Connection String 上的 Server 名呢..

解決方法
我們可以使用SqlConnectionStringBuilder 來分析我們的Connection String 以便找出 我們的Connection String 資訊
E.G.

 <add name="ApplicationServices" connectionString="Data Source=ShareChiWaiServer;Initial Catalog=ShareChiWaiSample;User Id=iBillUser;Password=iBill2011;" providerName="System.Data.SqlClient" />
//建立 SqlConnectionStringBuilder Object
 SqlConnectionStringBuilder sqlConStrBuilder =
              new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString);

  //取得 Database 名
  Console.WriteLine("Database Name: " + sqlConStrBuilder.InitialCatalog);
  //取得 Server 名
  Console.WriteLine("Server Name: " + sqlConStrBuilder.DataSource);
  //取得 Username
  Console.WriteLine("UserID: " + sqlConStrBuilder.UserID);

Hope you find it useful

Leave a Reply