专栏首页VB小源码VB.NET App.config 配置文件读写

VB.NET App.config 配置文件读写

配置文件一般分为内置配置文和用户自定义配置文件。

  内置配置文件包括app.config、web.config、Settings.settings等等。

   用户自定义配置文件一般是将配置信息放到XML文件或注册表中,配置信息一般包括程序设置,记录运行信息,保存控件的信息(比如位置,样式)等。


今天就来看看app.config配置文件的读写!各位看官请直观代码吧!

使用示例:

Public Class Form1
    Public Sub New()
        InitializeComponent()
        AppConfig.Appconfig_init()
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox(AppConfig.Insert_Config("bb", "89898", AppConfig.App_mode.app_config))
        'MsgBox(AppConfig.GET_Config("SQLiteDB", AppConfig.App_mode.connection_config))
    End Sub
End Class

类模块代码

''' <summary>
''' AppConfig节点配置
''' </summary>
Public Class AppConfig
    Public Shared Appfig As AppConfig = Nothing
    Private Shared ConFig As Object
    Private Shared App_set As Configuration.AppSettingsSection
    Private Shared App_connection As Configuration.ConnectionStringsSection

    ''' <summary>
    ''' 类型分配
    ''' </summary>
    Enum App_mode
        ''' <summary>
        ''' app配置
        ''' </summary>
        app_config = 1
        ''' <summary>
        ''' 连接配置
        ''' </summary>
        connection_config = 2
    End Enum

    Public Sub New()
    End Sub

    ''' <summary>
    ''' 初始化AppConfig
    ''' </summary>
    ''' <returns></returns>
    Public Shared Function Appconfig_init() As AppConfig
        Try
            ConFig = Configuration.ConfigurationManager.OpenExeConfiguration(Configuration.ConfigurationUserLevel.None)
            App_connection = ConFig.ConnectionStrings
            App_set = ConFig.AppSettings
            If Appfig Is Nothing Then Appfig = New AppConfig
            Return Appfig
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

    ''' <summary>
    ''' 读取app.config节点值
    ''' </summary>
    ''' <param name="KEYSTR"></param>
    ''' <returns></returns>
    Public Shared Function GET_Config(ByVal KEYSTR As String, ByVal mode As App_mode) As String
        Try
            Dim Temp As String = Nothing
            Select Case mode
                Case 1
                    Temp = Configuration.ConfigurationManager.AppSettings(KEYSTR)
                Case 2
                    Temp = Configuration.ConfigurationManager.ConnectionStrings(KEYSTR).ConnectionString
            End Select
            Return Temp
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

    ''' <summary>
    ''' 添加Appsetting节点值
    ''' </summary>
    ''' <param name="KEYSTR">key键</param>
    ''' <param name="VALSTR">value值</param>
    ''' <returns></returns>
    Public Shared Function Insert_Config(ByVal KEYSTR As String, ByVal VALSTR As String, ByVal mode As App_mode) As Boolean
        Try
            Select Case mode
                Case 1
                    If Configuration.ConfigurationManager.AppSettings(KEYSTR) = Nothing Then
                        App_set.Settings.Add(New Configuration.KeyValueConfigurationElement(KEYSTR, VALSTR))
                    Else
                        Return False
                    End If
                Case 2
                    App_connection.ConnectionStrings.Add(New Configuration.ConnectionStringSettings(KEYSTR, VALSTR))
            End Select
            ConFig.Save(Configuration.ConfigurationSaveMode.Modified)
            Configuration.ConfigurationManager.RefreshSection("appSettings")
            Configuration.ConfigurationManager.RefreshSection("connectionStrings")
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    ''' <summary>
    ''' 修改节点值(注意:修改后,App.config文件中节点值没有更改,而是exe.config的配置值更改,不影响正常读取)
    ''' </summary>
    ''' <param name="KEYSTR">key键</param>
    ''' <param name="VALSTR">value值</param>
    ''' <returns></returns>
    Public Shared Function Fix_Config(ByVal KEYSTR As String, ByVal VALSTR As String, ByVal mode As App_mode) As Boolean
        Try
            Select Case mode
                Case 1
                    App_set.Settings(KEYSTR).Value = VALSTR
                Case 2
                    App_connection.ConnectionStrings(KEYSTR).ConnectionString = VALSTR
            End Select
            ConFig.Save(Configuration.ConfigurationSaveMode.Modified)
            Configuration.ConfigurationManager.RefreshSection("appSettings")
            Configuration.ConfigurationManager.RefreshSection("connectionStrings")
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    ''' <summary>
    ''' 删除appconfig节点值
    ''' </summary>
    ''' <param name="KEYSTR">key键</param>
    ''' <returns></returns>
    Public Shared Function Del_Config(ByVal KEYSTR As String, ByVal mode As App_mode) As Boolean
        Try
            Select Case mode
                Case 1
                    App_set.Settings.Remove(KEYSTR)
                Case 2
                    App_connection.ConnectionStrings.Remove(KEYSTR)
            End Select
            ConFig.Save(Configuration.ConfigurationSaveMode.Modified)
            Configuration.ConfigurationManager.RefreshSection("appSettings")
            Configuration.ConfigurationManager.RefreshSection("connectionStrings")
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

End Class


各位看官今天代码就分享到这了!

有问题请指正!

本文分享自微信公众号 - VB小源码(vb_xym),作者:VB小源码

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VB.NET 图片和BASE64互转

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2...

    巴西_prince
  • VB.NET 连接oracle数据库

    大家都知道,开发中连接oracle数据库比较麻烦,要什么客户端之类啊!而且要引用一堆类库,今天我们用Oracle.ManagedDataAccess.Clien...

    巴西_prince
  • VBA 发票数据解析

    巴西_prince
  • iOS苹果审核2.1解决方案审核机制

    近几个月来,在苹果审核中,只要应用中涉及,支付,定位等涉及用户隐私的功能,苹果都会部分青红皂白的打回来,这其实很可能不是APP本身的原因,只是苹果要你自查。

    Lee坚武
  • SpringBoot拦截器的简单使用

    Web开发中,我们除了使用 Filter 来过滤请web求外,还可以使用Spring提供的HandlerInterceptor(拦截器)。他和Filter(过滤...

    止术
  • Ajax 的用法

    1、什么是 Ajax?   Ajax,英文名 Asynchronous JavaScript and XML,也就是异步的 JavaScript 和 XML。它...

    IT可乐
  • APP自动化测试系列之Appium介绍及运行原理

    在上一篇APP自动化系列文章:APP自动化测试系列之adb连接真机和模拟器,主要介绍adb连接真机的两种方式及如何连接夜神模拟器。

    ITester软件测试小栈
  • EMNLP 今日截稿,组委会发文“提醒”审稿人什么论文不该被拒!

    今天,EMNLP 还剩几小时就要正式截稿了,不少小伙伴们可能还在奋笔疾书地赶着最后几小时的 Deadline !

    AI科技评论
  • Export和import

    Es6的模块功能几乎所有人都在用,而且实现的非常简单,可以说成为了通用的模块方案。主要就到处模块export和导入模块import。

    wade
  • 几个命令了解ELF文件的”秘密“

    在Linux中,可执行文件的格式是ELF格式,而有一些命令可以帮助我们了解它们更多的“秘密”,以此来帮助我们解决问题。

    编程珠玑

扫码关注云+社区

领取腾讯云代金券