2012-03-25 177 views
5

我使用此代碼從我的app.config文件中讀取連接字符串,但它始終返回空值。我的App.config文件在我的項目下。這兩種方法得到的空值:如何從C#中的App.config文件讀取連接字符串

public SqlConnection getConnection() 
{ 
    try 
    { 
     // connectionString = ConfigurationManager.AppSettings["dbConn"]; 

     connectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString; 
     connectionString = System.Configuration.ConfigurationManager.AppSettings["dbConn"]; 
     sqlConnection = new SqlConnection(connectionString); 

     sqlConnection = new SqlConnection(connectionString); 
    } 
    catch (Exception ex) 
    { 

    } 
    return sqlConnection; 
} 

這是我的app.config文件聲明:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="dbConn" providerName="System.Data.SqlClient" 
      connectionString="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User Id=sa;Password=123" /> 
    </connectionStrings> 
</configuration> 
+0

請問您的項目正好是一個*類庫*項目?那些做**不實際使用他們自己的'app.config'文件 - 您需要使用您的類庫將連接字符串放入**託管應用程序**(主程序或Web應用程序/網站) – 2012-03-25 11:52:01

+0

marc_s ++爲我工作.. – 2016-02-04 10:21:13

回答

4

能不能請你

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="dbConn" providerName="System.Data.SqlClient" 
      connectionString="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User Id=sa;Password=123" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="dbConn" value="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User Id=sa;Password=123" /> 
    </appSettings> 
</configuration> 

然後使用第二種方法。

確保您在解決方案資源管理器中選擇App.Config文件,並在屬性窗口中選擇Copy to Output DirectoryCopy Always。現在構建應用程序並重試。

See the screenshot

+1

仍然返回null – Kalanamith 2012-03-25 10:47:31

+0

看到我上面的編輯。 – PraveenVenu 2012-03-25 10:54:37

5

我認爲你的問題,你嘗試讀取連接字符串兩次,第一次你這樣做是正確的,你這樣做不對,所以才刪除第二行第二次:

connectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString; 
sqlConnection = new SqlConnection(connectionString); 

ConfigurationManager.AppSettings用於訪問配置的<appSettings>...</appSettings>部分。

+0

以及它不是這裏的情況。 – Kalanamith 2012-03-25 10:44:31

+0

您正在通過重新分配它來覆蓋connectionString。刪除第二個connectionString的分配,你會沒事的。 – Jay 2012-03-25 10:53:15

+0

那就是我寫給他的。他說這不起作用。 – 2012-03-25 10:56:11

1

您簡單的在一個類中定義的連接字符串,並調用該字符串.....

public class Connection 
    { 
     /// <summary> 
     /// Connection String 
     /// </summary> 
     public static string ConnectionString 
     { 
      get 
      { 
       return ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString; 
      } 
     } 
    } 

//Returning connction string 
sqlConnection conn = new SqlConnection(Connection.ConnectionString); 
1
connectionString=global::myProject.Properties.Settings.Default.myConnectionString 
+0

對我來說沒有運氣。 – Kalanamith 2012-03-25 11:08:54

相關問題