- Imports System.Configuration
- Imports System.Xml
- Public Class AppConfig
- ''' <summary>
- ''' 依据连接串名字connectionName返回数据连接字符串
- ''' </summary>
- ''' <param name="connectionName"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Shared Function GetConnectionStringsConfig(ByVal connectionName As String) As String
- Dim connectionString As String = ConfigurationManager.ConnectionStrings(connectionName).ConnectionString.ToString()
- Return connectionString
- End Function
- ''' <summary>
- ''' 更新连接字符串
- ''' </summary>
- ''' <param name="newName">连接字符串名称</param>
- ''' <param name="newConString">连接字符串内容</param>
- ''' <param name="newProviderName">数据提供程序名称</param>
- ''' <remarks></remarks>
- Shared Sub UpdateConnectionStringsConfig(ByVal newName As String, ByVal newConString As String, ByVal newProviderName As String)
- '记录该连接串是否已经存在
- Dim isModified As Boolean = False
- '如果要更改的连接串已经存在
- If (ConfigurationManager.ConnectionStrings(newName) IsNot Nothing) Then
- isModified = True
- End If
- '新建一个连接字符串实例
- Dim mySettings As ConnectionStringSettings = _
- New ConnectionStringSettings(newName, newConString, newProviderName)
- ' 打开可执行的配置文件*.exe.config
- Dim config As Configuration = _
- ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
- ' 如果连接串已存在,首先删除它
- If (isModified) Then
- config.ConnectionStrings.ConnectionStrings.Remove(newName)
- End If
- ' 将新的连接串添加到配置文件中.
- config.ConnectionStrings.ConnectionStrings.Add(mySettings)
- ' 保存对配置文件所作的更改
- config.Save(ConfigurationSaveMode.Modified)
- ' 强制重新载入配置文件的ConnectionStrings配置节
- ConfigurationManager.RefreshSection("ConnectionStrings")
- End Sub
- ''' <summary>
- ''' 返回*.exe.config文件中appSettings配置节的value项
- ''' </summary>
- ''' <param name="strKey"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Shared Function GetAppConfig(ByVal strKey As String) As String
- For Each key As String In ConfigurationManager.AppSettings
- If (key = strKey) Then
- Return ConfigurationManager.AppSettings(strKey)
- End If
- Next
- Return Nothing
- End Function
- ''' <summary>
- ''' 在*.exe.config文件中appSettings配置节增加一对键、值对
- ''' </summary>
- ''' <param name="newKey"></param>
- ''' <param name="newValue"></param>
- ''' <remarks></remarks>
- Shared Sub UpdateAppConfig(ByVal newKey As String, ByVal newValue As String)
- Dim isModified As Boolean = False
- For Each key As String In ConfigurationManager.AppSettings
- If (key = newKey) Then
- isModified = True
- End If
- Next
- '打开 可执行文件的 App.Config
- Dim config As Configuration = _
- ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
- '在你替换它之前你需要移除旧的设定对象
- If (isModified) Then
- config.AppSettings.Settings.Remove(newKey)
- End If
- ' 添加一个应用程序设定
- config.AppSettings.Settings.Add(newKey, newValue)
- ' 将修改保存到 App.config 文件
- config.Save(ConfigurationSaveMode.Modified)
- '强制重新载入配置文件的ConnectionStrings配置节
- ConfigurationManager.RefreshSection("appSettings")
- End Sub
- Public Shared Sub SaveConfig(ByVal Key As String, ByVal Value As String)
- Dim doc As New XmlDocument()
- '获得配置文件的全路径
- Dim strFileName As String = AppDomain.CurrentDomain.BaseDirectory.ToString() & "App.config"
- doc.Load(strFileName)
- '找出名称为“add”的所有元素
- Dim nodes As XmlNodeList = doc.GetElementsByTagName("add")
- For i As Integer = 0 To nodes.Count - 1
- '获得将当前元素的key属性
- Dim att As XmlAttribute = nodes(i).Attributes("key")
- '根据元素的第一个属性来判断当前的元素是不是目标元素
- If att.Value = Key Then
- '对目标元素中的第二个属性赋值
- att = nodes(i).Attributes("value")
- att.Value = Value
- Exit For
- End If
- Next
- '保存上面的修改
- doc.Save(strFileName)
- End Sub
- End Class
AppConfig读写类
最新推荐文章于 2022-11-18 14:59:38 发布