修改配置文件app.config时出现值叠加的问题,求解???
一个很简单的需求:使用程序动态修改配置文件。
实现方法:
- C# code
///<summary> ///向.config文件的appKey结写入信息AppValue 保存设置 ///</summary> ///<param name="AppKey">节点名</param> ///<param name="AppValue">值</param> private void SetValue(string AppKey, string AppValue) { //Update XmlDocument xDoc = new XmlDocument(); xDoc.Load(_crmUrl); XmlNode xNode; xNode = xDoc.SelectSingleNode("//appSettings"); XmlElement xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']"); XmlElement xElem2; if (xElem1 != null) {xElem1.SetAttribute("value", AppValue); } else { xElem2 = xDoc.CreateElement("add"); xElem2.SetAttribute("key", AppKey); xElem2.SetAttribute("value", AppValue); xNode.AppendChild(xElem2); } xDoc.Save(_crmUrl); }
第一次运行点击修改,修改成功:
- XML code
<add key="cs" value="Data Source=192.0.1.122;Initial Catalog=DB;Persist Security Info=True;User ID=sa;Password=sa" />
第一次点击修改,结果却变成这样子了:
- XML code
<add key="cs" value="Data Source=192.0.1.122;Initial Catalog=DB;Persist Security Info=True;User ID=sa;Password=saData Source=192.0.1.122;Initial Catalog=DB;Persist Security Info=True;User ID=sa;Password=sa" />
如果点击一次后,关闭程序,在重新运行则正常???? 这是为啥呢???
[解决办法]
打个断点看看你的各变量的值第二次点击和第一次点击有什么不同,就清楚了
这样看累死人
第二次点击后面不是多了那么多字符串么,肯定是执行时候多出来的
打断点调吧