我需要在vb.net中更改aap.config文件的connectionstring区域。我尝试了几个代码,但对我没用。我被建议使用代码
Dim config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim connectionStringsSection = DirectCast(config.GetSection("connectionStrings"), ConnectionStringsSection)
connectionStringsSection.ConnectionStrings("Blah").ConnectionString = "Data Source=blah;Initial Catalog=blah;UID=blah;password=blah"
config.Save()
ConfigurationManager.RefreshSection("connectionStrings")
但我不明白我的代码中会出现什么“Blah”?这又如何改变文本?
其次,如果我使用Readalltext和replacetext然后writealltext,它会没问题,否则会导致任何问题? 感谢
答案 0 :(得分:0)
要从app.config存储和检索连接字符串,请使用以下方法:
在app.config中创建一个键:
<appSettings>
<add key="ConnectionString" value=""/>
</appSettings>
设置连接字符串的值:
Dim config As System.Configuration.Configuration
Dim fileMap As New ExeConfigurationFileMap()
fileMap.ExeConfigFilename = "Path of app.config"
config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None)
' Sets values to config file.
If config.HasFile() Then
config.AppSettings.Settings.Item("ConnectionString").Value = "Data Source=blah;Initial Catalog=blah;UID=blah;password=blah"
config.Save(ConfigurationSaveMode.Modified)
ConfigurationManager.RefreshSection("AppSettings")
End If
获取连接字符串的值:
Dim config As System.Configuration.Configuration
Dim fileMap As New ExeConfigurationFileMap()
fileMap.ExeConfigFilename = "Path of app.config"
config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None)
' Sets values to config file.
If config.HasFile() Then
strConnString = config.AppSettings.Settings.Item("ConnectionString").Value
End If
这里strConnString是一个字符串变量,它将存储连接字符串值。