如何使用C#从App.config文件中读取连接字符串

5

我正在使用这段代码从我的 app.config 文件中读取连接字符串,但它总是返回 null 值。我的 App.config 文件位于我的项目下。这两种方法都会导致返回 null 值:

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文件声明:

这是我的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>

1
你的项目是否是一个类库项目?这些项目实际上不会使用自己的app.config文件 - 你需要将连接字符串放入托管应用程序(主程序或Web应用程序/网站)中,使用你的类库。 - marc_s
marc_s++ 对我很有用。 - The Furious Bear
4个回答

5

我认为你的问题在于你尝试读取了两次连接字符串,第一次你做得没问题,但第二次你做错了,所以只需删除第二行:

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

ConfigurationManager.AppSettings 用于访问配置文件中的 <appSettings>...</appSettings> 部分。


你正在通过重新赋值来覆盖connectionString。 删除connectionString的第二次赋值,然后一切都会好的。 - Jay

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 文件,并在属性窗口中选择 复制到输出目录始终复制。现在重新构建应用程序并再次尝试。

查看截图


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接