我在运行时将连接字符串添加到我的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();
此代码正确地将connectionstring添加到app.config文件中。
然后我试图像这样创建一个SqlConnectionStringBuilder类:
SqlConnectionStringBuilder destinationConnection = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString);
我收到一个空引用异常。为什么我得到null引用异常?我在这里缺少什么?
答案 0 :(得分:3)
配置类缓存读取文件。在获取代码中的新值之前,需要刷新相应的配置部分。
ConfigurationManager.RefreshSection("connectionStrings");
更新:您是否实际执行这两项操作,更新app.config并尝试从同一进程(和AppDomain)访问连接字符串?因为如果是这样的话,不需要刷新配置部分。如果您将两个片段都粘贴到控制台应用程序的Main
方法中,它将按预期工作,而无需刷新该部分。