public class ConfigUtils
{
public static string filename = System.Windows.Forms.Application.StartupPath + @"\App.config";
/// <summary>
/// 对[appSettings]节点依据Key值读取到Value值,返回字符串
/// </summary>
/// <param name="key">要读取的Key值</param>
/// <returns>返回Value值的字符串</returns>
public static string GetAppSetting(string key)
{
string value = null;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//appSettings");
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@key='" + key + "']");
if (element != null)
{
value = element.GetAttribute("value");
}
return value;
}
/// <summary>
/// 对[connectionStrings]节点依据name值读取到connectionString值,返回字符串
/// </summary>
/// <param name="name">要读取的name值</param>
/// <returns>返回connectionString值的字符串</returns>
public static string GetConnectionString(string name)
{
string connectionString = null;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//connectionStrings");
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@name='" + name + "']");
if (element != null)
{
connectionString = element.GetAttribute("connectionString");
}
return connectionString;
}
/// <summary>
/// 更新或新增[appSettings]节点的子节点值,存在则更新子节点Value,不存在则新增子节点,返回成功与否布尔值
/// </summary>
/// <param name="key">子节点Key值</param>
/// <param name="value">子节点value值</param>
/// <returns>返回成功与否布尔值</returns>
public static bool SetAppSetting(string key, string value)
{
bool isSuccess = false;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//appSettings");
try
{
if (node == null)
{
//不存在则新增appSettings子节点
XmlNode root = doc.DocumentElement;
XmlElement appElement = doc.CreateElement("appSettings");
XmlElement subElement = doc.CreateElement("add");
subElement.SetAttribute("key", key);
subElement.SetAttribute("value", value);
appElement.AppendChild(subElement);
root.AppendChild(appElement);
}
else
{
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@key='" + key + "']");
if (element != null)
{
//存在则更新子节点Value
element.SetAttribute("value", value);
}
else
{
//不存在则新增子节点
XmlElement subElement = doc.CreateElement("add");
subElement.SetAttribute("key", key);
subElement.SetAttribute("value", value);
node.AppendChild(subElement);
}
}
using (XmlTextWriter xmlwriter = new XmlTextWriter(filename, null))
{
xmlwriter.Formatting = Formatting.Indented;
doc.WriteTo(xmlwriter);
xmlwriter.Flush();
}
isSuccess = true;
}
catch (Exception e)
{
isSuccess = false;
}
return isSuccess;
}
/// <summary>
/// 更新或新增[connectionStrings]节点的子节点值,存在则更新子节点,不存在则新增子节点,返回成功与否布尔值
/// </summary>
/// <param name="name">子节点name值</param>
/// <param name="connectionString">子节点connectionString值</param>
/// <param name="providerName">子节点providerName值</param>
/// <returns>返回成功与否布尔值</returns>
public static bool SetConnectionString(string name, string connectionString, string providerName)
{
bool isSuccess = false;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//connectionStrings");
try
{
if (node == null)
{
//不存在则新增connectionStrings子节点
XmlNode root = doc.DocumentElement;
XmlElement connElement = doc.CreateElement("connectionStrings");
XmlElement subElement = doc.CreateElement("add");
subElement.SetAttribute("name", name);
subElement.SetAttribute("connectionString", connectionString);
subElement.SetAttribute("providerName", providerName);
connElement.AppendChild(subElement);
root.AppendChild(connElement);
}
else
{
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@name='" + name + "']");
if (element != null)
{
//存在则更新子节点
element.SetAttribute("connectionString", connectionString);
element.SetAttribute("providerName", providerName);
}
else
{
//不存在则新增子节点
XmlElement subElement = doc.CreateElement("add");
subElement.SetAttribute("name", name);
subElement.SetAttribute("connectionString", connectionString);
subElement.SetAttribute("providerName", providerName);
node.AppendChild(subElement);
}
}
doc.Save(filename);
isSuccess = true;
}
catch (Exception e)
{
isSuccess = false;
}
return isSuccess;
}
/// <summary>
/// 更新或新增[connectionStrings]节点的子节点值,存在则更新子节点,不存在则新增子节点,返回成功与否布尔值
/// </summary>
/// <param name="name">子节点name值</param>
/// <param name="connectionString">子节点connectionString值</param>
/// <param name="providerName">子节点providerName值</param>
/// <returns>返回成功与否布尔值</returns>
public static bool SetConnectionString(string name, string connectionString)
{
bool isSuccess = false;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//connectionStrings");
try
{
if (node == null)
{
//不存在则新增connectionStrings子节点
XmlNode root = doc.DocumentElement;
XmlElement connElement = doc.CreateElement("connectionStrings");
XmlElement subElement = doc.CreateElement("add");
subElement.SetAttribute("name", name);
subElement.SetAttribute("connectionString", connectionString);
connElement.AppendChild(subElement);
root.AppendChild(connElement);
}
else
{
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@name='" + name + "']");
if (element != null)
{
//存在则更新子节点
element.SetAttribute("connectionString", connectionString);
}
else
{
//不存在则新增子节点
XmlElement subElement = doc.CreateElement("add");
subElement.SetAttribute("name", name);
subElement.SetAttribute("connectionString", connectionString);
node.AppendChild(subElement);
}
}
doc.Save(filename);
isSuccess = true;
}
catch (Exception e)
{
isSuccess = false;
}
return isSuccess;
} /// <summary>
/// 删除[appSettings]节点中包含Key值的子节点,返回成功与否布尔值
/// </summary>
/// <param name="key">要删除的子节点Key值</param>
/// <returns>返回成功与否布尔值</returns>
public static bool DeleteAppSetting(string key)
{
bool isSuccess = false;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//appSettings");
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@key='" + key + "']");
if (element != null)
{
//存在则删除子节点
element.ParentNode.RemoveChild(element);
}
try
{
using (XmlTextWriter xmlwriter = new XmlTextWriter(filename, null))
{
xmlwriter.Formatting = Formatting.Indented;
doc.WriteTo(xmlwriter);
xmlwriter.Flush();
}
isSuccess = true;
}
catch (Exception e)
{
isSuccess = false;
}
return isSuccess;
}
/// <summary>
/// 删除[connectionStrings]节点中包含name值的子节点,返回成功与否布尔值
/// </summary>
/// <param name="name">要删除的子节点name值</param>
/// <returns>返回成功与否布尔值</returns>
public static bool DeleteConnectionString(string name)
{
bool isSuccess = false;
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlNode node = doc.SelectSingleNode("//connectionStrings");
XmlElement element = (XmlElement)node.SelectSingleNode("//add[@name='" + name + "']");
if (element != null)
{
//存在则删除子节点
node.RemoveChild(element);
} try
{
doc.Save(filename);
isSuccess = true;
}
catch (Exception e)
{
isSuccess = false;
}
return isSuccess;
}
}
    class SetConfig
{
/// <summary>
/// 对[appSettings]节点依据Key值读取到Value值
/// </summary>
/// <param name="strKey"></param>
/// <returns></returns>
public static string GetAppSettings(string strKey)
{
foreach (string key in ConfigurationManager.AppSettings)
{
if (key == strKey)
{
return ConfigurationManager.AppSettings[strKey];
}
}
return null;
}
/// <summary>
/// 更新或新增[appSettings]节点的子节点值
/// </summary>
/// <param name="newKey"></param>
/// <param name="newValue"></param>
public static void SetAppSettings(string newKey, string newValue)
{
bool isModified = false;
// 如果要更改的Key已经存在
foreach (string key in ConfigurationManager.AppSettings)
{
if (key == newKey)
{
isModified = true;
}
}
//打开 App.Config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 如果连接串已存在,首先删除它
if (isModified)
{
config.AppSettings.Settings.Remove(newKey);
}
//添加新的配置到配置文件里
config.AppSettings.Settings.Add(newKey, newValue);
//保存对配置节所做的更改
config.Save(ConfigurationSaveMode.Modified);
//强制重载配置节
ConfigurationManager.RefreshSection("appSettings");
}
/// <summary>
/// 对[connectionStrings]节点依据name值读取
/// </summary>
/// <param name="strName"></param>
/// <returns></returns>
public static string GetConnectionString(string strName)
{
foreach (ConnectionStringSettings item in ConfigurationManager.ConnectionStrings)
{
if (item.Name == strName)
{
return ConfigurationManager.ConnectionStrings[strName].ConnectionString;
}
}
return null;
}
/// <summary>
/// 更新或新增[connectionStrings]节点的子节点值
/// </summary>
/// <param name="newName"></param>
/// <param name="newValue"></param>
public static void SetConnectionString(string newName, string newValue)
{
bool isModified = false;
// 如果要更改的Key已经存在
foreach (ConnectionStringSettings item in ConfigurationManager.ConnectionStrings)
{
if (item.Name == newName)
{
isModified = true;
}
}
//打开 App.Config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 如果连接串已存在,首先删除它
if (isModified)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
//添加新的配置到配置文件里
ConnectionStringSettings conSetting = new ConnectionStringSettings(newName, newValue);
config.ConnectionStrings.ConnectionStrings.Add(conSetting);
//保存对配置节所做的更改
config.Save(ConfigurationSaveMode.Modified);
//强制重载配置节
ConfigurationManager.RefreshSection("connectionStrings");
} }

最新文章

  1. cstring to char *例子
  2. 深入理解http/https协议
  3. windows apache24 php Call to undefined function curl_init
  4. dede使用方法----调用列表页的分页功能
  5. BZOJ3160: 万径人踪灭
  6. uva 11294
  7. AP(应付帐管理)
  8. hdu 2295 DLX
  9. Linux系统的Cache工作原理和管理机制
  10. java interface
  11. UnitOfWork应用
  12. 开箱即用 - Memcache
  13. 正则表达式中的 \b 什么意思?
  14. Centos7查看IP
  15. linux 开发板上的调试
  16. delphi ListView 设置固定列宽
  17. 5_bash
  18. tensorflow中数据批次划分示例教程
  19. 企业安全建设之搭建开源SIEM平台
  20. TOP100summit:【分享实录-Microsoft】基于Kafka与Spark的实时大数据质量监控平台

热门文章

  1. Tunnel connection failed: 407 Proxy Authentication Required
  2. [python 学习] argparse模块
  3. [CSS]CSS中使用span和div遇到的问题
  4. pandas学习(一)
  5. [转]php判断mysql_query是否成功执行
  6. 一探究竟:善用 MaxCompute Studio 分析 SQL 作业
  7. 数组与List互转的坑
  8. C#:XML操作类
  9. &quot;C++ Primer Plus&quot; is WAY FUCKING BETTER than &quot;C++ Primer&quot; (For Beginners)!!!
  10. mysql 之 frm+ibd文件还原data