【问题标题】:Unable to read newly added connection string from app.config file无法从 app.config 文件中读取新添加的连接字符串
【发布时间】:2015-12-25 14:04:33
【问题描述】:

我在运行时将连接字符串添加到我的 App.config 文件中,如下所示:

ConnectionStringSettings connSettings = new ConnectionStringSettings("dbConnectionString", "Data Source=DBSERVERNAME,1111;Initial Catalog=DBNAME;Integrated Security=false;User ID=USERID;Password=PASSWORD");
            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            config.ConnectionStrings.ConnectionStrings.Add(connSettings);
            config.Save();

此代码正确地将连接字符串添加到 app.config 文件中。

然后我尝试像这样创建一个 SqlConnectionStringBuilder 类:

SqlConnectionStringBuilder destinationConnection = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString);

我得到一个空引用异常。为什么我得到空引用异常?我在这里错过了什么?

【问题讨论】:

  • 你能检查ConfigurationManager.ConnectionStrings["dbConnectionString"]的值吗?
  • 它为空。我想知道为什么它的值为 null,因为我已经将它添加到 App.config。

标签: c# connection-string app-config


【解决方案1】:

配置类缓存读取文件。在获取代码中的新值之前,您需要刷新相应的配置部分。

ConfigurationManager.RefreshSection("connectionStrings");

更新:您实际上是在同时更新 app.config 并尝试从同一个进程(和 AppDomain)访问连接字符串吗?因为如果是这样,则不需要刷新配置部分。如果您将两个片段都粘贴到控制台应用程序的 Main 方法中,它将按预期工作刷新该部分。

【讨论】:

  • 是的,我在同一个过程中做这两个。仍然没有工作。我需要刷新connectingString 部分以使其工作。谢谢。
猜你喜欢
  • 2013-11-08
  • 2010-12-22
  • 2013-06-22
  • 2014-09-16
  • 1970-01-01
  • 2016-04-05
  • 2011-09-26
  • 1970-01-01
相关资源
最近更新 更多