当前位置:   article > 正文

C#读写config配置文件_c# 读取config

c# 读取config

现在FrameWork2.0以上使用的是:ConfigurationManager或WebConfigurationManager。
并且AppSettings属性是只读的,并不支持修改属性值.

一、如何使用ConfigurationManager

1、添加引用:添加System.configguration

2、引用空间

3、config配置文件配置节

常用配置节:

(1)普通配置节

<appSettings>  

  <add key="COM1" value="COM1,9600,8,None,1,已启用" />

</appSettings> 

(2)数据源配置节

<connectionStrings>
  <add name="kyd" connectionString="server=.;database=UFDATA_999_2017;user=sa;pwd=123"/>
</connectionStrings>

(3)自定义配置节

二、config文件读写

1、依据连接串名字connectionName返回数据连接字符串  

  1. //依据连接串名字connectionName返回数据连接字符串
  2. public static string GetConnectionStringsConfig(string connectionName)
  3. {
  4. //指定config文件读取
  5. string file = System.Windows.Forms.Application.ExecutablePath;
  6. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(file);
  7. string connectionString =
  8. config.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString.ToString();
  9. return connectionString;
  10. }

2、更新连接字符串  

  1. ///<summary>
  2. ///更新连接字符串
  3. ///</summary>
  4. ///<param name="newName">连接字符串名称</param>
  5. ///<param name="newConString">连接字符串内容</param>
  6. ///<param name="newProviderName">数据提供程序名称</param>
  7. public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
  8. {
  9. //指定config文件读取
  10. string file = System.Windows.Forms.Application.ExecutablePath;
  11. Configuration config = ConfigurationManager.OpenExeConfiguration(file);
  12. bool exist = false; //记录该连接串是否已经存在
  13. //如果要更改的连接串已经存在
  14. if (config.ConnectionStrings.ConnectionStrings[newName] != null)
  15. {
  16. exist = true;
  17. }
  18. // 如果连接串已存在,首先删除它
  19. if (exist)
  20. {
  21. config.ConnectionStrings.ConnectionStrings.Remove(newName);
  22. }
  23. //新建一个连接字符串实例
  24. ConnectionStringSettings mySettings =
  25. new ConnectionStringSettings(newName, newConString, newProviderName);
  26. // 将新的连接串添加到配置文件中.
  27. config.ConnectionStrings.ConnectionStrings.Add(mySettings);
  28. // 保存对配置文件所作的更改
  29. config.Save(ConfigurationSaveMode.Modified);
  30. // 强制重新载入配置文件的ConnectionStrings配置节
  31. ConfigurationManager.RefreshSection("connectionStrings");
  32. }

3、返回*.exe.config文件中appSettings配置节的value项  

  1. ///<summary>
  2. ///返回*.exe.config文件中appSettings配置节的value项
  3. ///</summary>
  4. ///<param name="strKey"></param>
  5. ///<returns></returns>
  6. public static string GetAppConfig(string strKey)
  7. {
  8. string file = System.Windows.Forms.Application.ExecutablePath;
  9. Configuration config = ConfigurationManager.OpenExeConfiguration(file);
  10. foreach (string key in config.AppSettings.Settings.AllKeys)
  11. {
  12. if (key == strKey)
  13. {
  14. return config.AppSettings.Settings[strKey].Value.ToString();
  15. }
  16. }
  17. return null;
  18. }

4、在*.exe.config文件中appSettings配置节增加一对键值对  

  1. ///<summary>
  2. ///在*.exe.config文件中appSettings配置节增加一对键值对
  3. ///</summary>
  4. ///<param name="newKey"></param>
  5. ///<param name="newValue"></param>
  6. public static void UpdateAppConfig(string newKey, string newValue)
  7. {
  8. string file = System.Windows.Forms.Application.ExecutablePath;
  9. Configuration config = ConfigurationManager.OpenExeConfiguration(file);
  10. bool exist = false;
  11. foreach (string key in config.AppSettings.Settings.AllKeys)
  12. {
  13. if (key == newKey)
  14. {
  15. exist = true;
  16. }
  17. }
  18. if (exist)
  19. {
  20. config.AppSettings.Settings.Remove(newKey);
  21. }
  22. config.AppSettings.Settings.Add(newKey, newValue);
  23. config.Save(ConfigurationSaveMode.Modified);
  24. ConfigurationManager.RefreshSection("appSettings");
  25. }

5、修改IP地址

修改IP地址

 

config 读写方法

  1. using System.Configuration;
  2. //省略其他代码
  3. public SalesOrderData()
  4. {
  5. string str = "";
  6. str = ConfigurationManager.ConnectionStrings["kyd"].ToString();
  7. conn = new SqlConnection(str);
  8. cmd = conn.CreateCommand();
  9. }

 实际应用:

1、获取配置节的值

button1 点击获取配置节<appSettings>指定key的value值

button2 点击获取配置节<connectionStrings>指定name的connectionString值

结果为:

2、修改配置节的值

button1 点击获取配置节<appSettings>指定key的value值

button2 点击修改配置节<connectionStrings>指定key的value值为文本框的值

button3 点击获取配置节<appSettings>指定key新的value值

结果为:

 

此时配置文件key1的value值为,获取key值仍为修改前的值

如何重置为修改前的值?

如何保存修改后的值?

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/84021
推荐阅读
相关标签
  

闽ICP备14008679号