2012-03-25 115 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

相关问题