//保存关联设置(写入Xml文件)
private void SaveSet()
{
//清空数据
XmlNode CurNode = mXDoc.SelectSingleNode("Nodes");
CurNode.RemoveAll();
//循环显示XML中的数据
foreach (xzTreeNode Node in trDSFields.Nodes)
{
xzExcelParam ExcelParam = Node.Sender as xzExcelParam;
#region 得到相关字段
string XmlDBColumnName = ExcelParam.DBColumnName;
string XmlDefaultValue = ExcelParam.DefaultValue;
string XmlEXCELColumnName = ExcelParam.EXCELColumnName;
bool XmlisCreate = ExcelParam.isCreate;
bool XmlisRepeat = ExcelParam.isRepeat;
#endregion
if (Node.Checked)
{
XmlNode tmpXNode = mXDoc.SelectSingleNode("Nodes/Node[@Name=/"" + XmlDBColumnName + "/"]");//结点名称
//存在则修改
if (tmpXNode != null)
{
XmlNodeList tmpXPropLst = tmpXNode.SelectNodes("Propertys/Property");
IEnumerator tmpIe = tmpXPropLst.GetEnumerator();
while (tmpIe.MoveNext())
{
XmlNode tmpXNodeChild = tmpIe.Current as XmlNode;
string TmpName = tmpXNodeChild.Attributes["Name"].Value.ToString();
switch (TmpName)
{
case "DBColumnName":
tmpXNodeChild.Attributes["Caption"].Value = XmlDBColumnName;
break;
case "EXCELColumnName":
tmpXNodeChild.Attributes["Caption"].Value = XmlEXCELColumnName;
break;
case "isCreate":
ExcelParam.isCreate =tmpXNodeChild.Attributes["Caption"].Value=="true" ? true:false;
break;
case "isRepeat":
ExcelParam.isRepeat = tmpXNodeChild.Attributes["Caption"].Value == "true" ? true : false;
break;
case "DefaultValue":
tmpXNodeChild.Attributes["Caption"].Value = XmlDefaultValue;
break;
}
}
}
//不存在则创建
else
{
XmlNode ParentNode = mXDoc.SelectSingleNode("Nodes");
XmlElement XmlParent = mXDoc.CreateElement("Node");//创建一个<Node>节点
XmlParent.SetAttribute("Name", XmlDBColumnName);
XmlElement XmlChilde1 = mXDoc.CreateElement("Propertys");
XmlElement XmlChilde21 = mXDoc.CreateElement("Property");
XmlChilde21.SetAttribute("Name", "DBColumnName");
XmlChilde21.SetAttribute("Caption", XmlDBColumnName);
XmlChilde1.AppendChild(XmlChilde21);
XmlElement XmlChilde22 = mXDoc.CreateElement("Property");
XmlChilde22.SetAttribute("Name", "EXCELColumnName");
XmlChilde22.SetAttribute("Caption", XmlEXCELColumnName);
XmlChilde1.AppendChild(XmlChilde22);
XmlElement XmlChilde23 = mXDoc.CreateElement("Property");
XmlChilde23.SetAttribute("Name", "isCreate");
XmlChilde23.SetAttribute("Caption", XmlisCreate.ToString());
XmlChilde1.AppendChild(XmlChilde23);
XmlElement XmlChilde24 = mXDoc.CreateElement("Property");
XmlChilde24.SetAttribute("Name", "isRepeat");
XmlChilde24.SetAttribute("Caption", XmlisRepeat.ToString());
XmlChilde1.AppendChild(XmlChilde24);
XmlElement XmlChilde25 = mXDoc.CreateElement("Property");
XmlChilde25.SetAttribute("Name", "DefaultValue");
XmlChilde25.SetAttribute("Caption", XmlDefaultValue);
XmlChilde1.AppendChild(XmlChilde25);
XmlParent.AppendChild(XmlChilde1);
ParentNode.AppendChild(XmlParent);
}
}
}
mXDoc.Save(Application.StartupPath + "//Nodes.xml");
MessageBox.Show("保存成功!");
}