2012-11-19 91 views
0

我在配置文件中有一個連接字符串獲得服務器名和數據庫,我如下使用它在我的代碼 -如何從配置文件

SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBCentralW2"].ConnectionString); 

我需要獲得服務器名和數據庫從此並將其作爲參數傳遞給我的存儲過程。

我試圖讓它如下,但它是失敗的。

SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBCentralW2"].ConnectionString); 
SqlConnectionStringBuilder conbuilder = new SqlConnectionStringBuilder(); 
conbuilder.ConnectionString = sqlconn.ToString(); 
string server = conbuilder.DataSource; 
string database = conbuilder.InitialCatalog; 

請幫我從我的配置文件得到數據庫和服務器名稱

+1

它是如何失敗?怎麼了? – SLaks

+1

爲什麼你要創建一個'SqlConnection'並且不使用它,除非得到你傳遞它的同一個連接字符串? – SLaks

回答

0

嘗試以下:

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();  
     builder.ConnectionString = sqlconn.ConnectionString; 
     string server = builder.DataSource; 
     string database = builder.InitialCatalog; 
0

我建議您將您的連接字符串中你的web.config比把它原樣,而不是構建它

in web.config

<add name="connStr" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=dbtest; Integrated Security=SSPI" /> 
在CS文件

string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; 
     SqlConnection con = new SqlConnection(connectionString); 

     con.Open(); 
+0

我知道了...... 它應該是 string database = sqlconn.DataSource; string server = sqlconn.DataSource; – Rash

2

你無法正確分配連接字符串屬性,嘗試:

builder.ConnectionString = ConfigurationManager.ConnectionStrings["DBCentralW2"].ConnectionString; 

或者例如與連接字符串初始化SqlConnectionStringBuilder

var conBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["DBCentralW2"].ConnectionString);