操作Config文件读取写入键值

本文详细介绍了如何在.NET应用程序中使用App.config文件存储和读取配置信息,包括关键字与键值对的对应,以及如何通过代码进行数据的获取与更新。同时,也讲解了Web配置文件中connectionStrings的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编辑的数据中 写在App.config 文件中,生成后则成为 *.exe.config文件,程序读取的数据就在这里
其中config的文件的样式为:

 <?xml version="1.0" encoding="utf-8"?>
      <configuration>
             <appSettings>
                    <add key="AppId" value="ALpNLKkJ2Y9jg7dydnY5Mfsp-gzGzoHsz" />
                    <add key="AppKey" value="cTS8KsiJAPIeHjlGTLBTPUgT" />
             </appSettings>
      <startup>
                <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
   
   </configuration>

其中我们仅能将写好的数据放入 appsettings 中,关键字与键值对应即可,获取方法为最简单的(引进以及 using System.Configuration;)

 AppId = ConfigurationManager.AppSettings["AppId"]; //获取数据为string类型且在appsettings[“相关key”]

设定相应的值为 :

 Configuration cfg  = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
      cfg.AppSettings.Settings["asa"].Value = "demo";
      cfg.Save(ConfigurationSaveMode.Full); //保存
      ConfigurationManager.RefreshSection("appSettings");//刷新下这个节点

新增的方式比较复杂。。当然也可以使用xml的方式来进行设置。

打开指定路径的方法是:
configFileName是路劲地址其中路径中不可使用.config 为结尾默认采集的.exe文件的结尾;

     Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigFileName);

使用示例


    string GetConfigFile = ConfigFileName.Replace(".config","");//去掉config文件后缀
                Configuration config = ConfigurationManager.OpenExeConfiguration(GetConfigFile);
                AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
                string BeginDate = ConfigurationManager.AppSettings["BeginDate"];
                if (string.IsNullOrWhiteSpace(BeginDate))
                {
                    BeginDate = DateTime.Now.ToString();
                    if (appSetting.Settings["BeginDate"] == null)
                    {
                        appSetting.Settings.Add("BeginDate", BeginDate);
                    }
                    else
                    {
                        appSetting.Settings["BeginDate"].Value = BeginDate;
                    }
                    
                }
                textBox1.Text = SNOparetion.Encrypt(BeginDate);
                if (checkBox1.Checked)
                {
                    if (appSetting.Settings["SerialNo"] == null)
                    {
                        appSetting.Settings.Add("SerialNo", textBox1.Text);
                    }
                    else
                    {
                        appSetting.Settings["SerialNo"].Value = textBox1.Text;
                    }
                   
                }
                config.Save(ConfigurationSaveMode.Full);

Web配置文件的读取:

configuration>
  <connectionStrings>
    <add name="ConnectionString" connectionString="server=go.anssy.com;database=HengLi;uid=adata;pwd=23232;" providerName="SqlServer" />
    <add name="ConnectionStringQH" connectionString="server=go.anssy.com;database=HengliQinghai;uid=adata;pwd=3333$#UD;" providerName="SqlServer" />
    <add name="ConnectionStringWord" connectionString="server=go.anssy.com;database=HengliReportWord;uid=adata;pwd=4546$#UD;" providerName="SqlServer" />
  </connectionStrings>
  

读取方式为: ConfigurationManager.ConnectionStrings["ConnectionStringWord"].ConnectionString;
使用 web 来读取的方式如下:
地址 System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
在这里插入图片描述
配置与修改

 public static void SetThisAdd(AddSet ThisAddIn)
        {
            ThisAdd = ThisAddIn;
            Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            cfg.AppSettings.Settings["AddIndex"].Value = ThisAdd.Id.ToString();
            cfg.Save(ConfigurationSaveMode.Full); //保存
            ConfigurationManager.RefreshSection("appSettings");//刷新下这个节点
        }
        public static void GetThisAdd()
        {
            string OutId =  ConfigurationManager.AppSettings["AddIndex"];
            OutId = string.IsNullOrWhiteSpace(OutId) ?"1":OutId;
            ThisAdd = new DAL.DALAddSet().GetModel(OutId);
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值