日期:2014-05-20  浏览次数:20881 次

修改配置文件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" />


如果点击一次后,关闭程序,在重新运行则正常???? 这是为啥呢???

------解决方案--------------------
打个断点看看你的各变量的值第二次点击和第一次点击有什么不同,就清楚了
这样看累死人
第二次点击后面不是多了那么多字符串么,肯定是执行时候多出来的
打断点调吧