对象引用未设置为从代码中更改 app.config 中连接字符串的对象实例 [重复]
Posted
技术标签:
【中文标题】对象引用未设置为从代码中更改 app.config 中连接字符串的对象实例 [重复]【英文标题】:Object reference not set to an instance of an object changing connection string in app.config from code [duplicate] 【发布时间】:2014-07-18 11:43:44 【问题描述】:请看下面的代码:
Public Sub GetConnectionString(Dim strCon As String)
Dim stringtochange As String = ConfigurationManager.ConnectionStrings("GeniedbConnection").ConnectionString 'line 2
Dim configFile As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim connectionStringsSection As ConnectionStringsSection
connectionStringsSection = CType(configFile.GetSection("GeniedbConnection"), ConnectionStringsSection)
connectionStringsSection.ConnectionStrings("GeniedbConnection").ConnectionString = strCon 'Line 6
configFile.Save()
End Sub
我正在尝试更改 app.config 中的连接字符串。第 2 行返回当前连接字符串。第 6 行抛出异常:`"Object reference not set to an instance of an object."这是为什么呢?
【问题讨论】:
看到这个...***.com/questions/16131382/… 这是因为对象引用未设置为对象的实例。关于 SO 有很多类似的问题,其中大多数最终给出了相同的、正确的建议。调试你的代码,看看哪个对象引用没有设置,然后找出从哪里去。 我同意 Lasse 的观点。有一个专门针对这个主题的问题,***.com/questions/4660142/… 【参考方案1】:第 2 行
Dim stringtochange As String = ConfigurationManager.ConnectionStrings("GeniedbConnection").ConnectionString
与第 6 行不同
connectionStringsSection.ConnectionStrings("GeniedbConnection").ConnectionString = strCon
ConfigurationManager != connectionStringsSection
其中一个为空,connectionStringsSection
,connectionStringsSection.ConnectionStrings("GeniedbConnection")
【讨论】:
以上是关于对象引用未设置为从代码中更改 app.config 中连接字符串的对象实例 [重复]的主要内容,如果未能解决你的问题,请参考以下文章