应用XML类库更新数据updatedata
xml吧
全部回复
仅看楼主
level 1
Sxin0517 楼主

public static int UpdateData(string path,string tableName,params XmlParamter[] param)
{
XmlDocument doc = new XmlDocument();
try
{
///导入XML文档
doc.Load(path);
}
catch(Exception ex)
{
throw new Exception(ex.Message,ex);
}
///创新选择被修改节点的XPath
String xmlPath = “/”+tableName+”s/”+tableName;
int operationCount = 0;
StringBuilder operation = new StringBuilder();
Foreach(XmlParamter p in param)
{
if(p.Direction == ParameterDirection.Insert
||p. Direction == ParameterDirection.Update)
{ continue;
}
Switch(p.Direction)
{
Case ParameterDirection.Equal:
operation.Append(“@”+p.Name+”=”+p.Value+””);
break;
Case ParameterDirection.NotEqual:
operation.Append(“@”+p.Name+”<>”+p.Value+””);
break;
Case ParameterDirection.Little:
operation.Append(“@”+p.Name+”<”+p.Value+””);
break;
Case ParameterDirection.Great:
operation.Append(“@”+p.Name+”>”+p.Value+””);
break;
Case ParameterDirection.Like:
operation.Append(“contains(@”+p.Name+”,”+p.Value+”)”);
break;
default:break;
}
operationCount++;
operation.Append(“and”);
}
if(operationCount > 0)
{
operation.Remove(operation.Length - 5,5);
xmlPath += “[”+ operation.ToString()+”]”;
}
XmlNodeList nodeList = doc.SelectNodes(xmlPath);
if(nodeList == null)return -1;
///修改节点的属性
foreach(XmlNode node in nodeList)
{ ///修改单个节点的属性
foreach(XmlParameter p in param)
{
if(p.Direction == ParameterDirection.Update)
{
node.Attributes[p.Name].Value = p.Value;
}
}
try
{ ///保存XML文档
doc.Save(path);
}
catch(Exception ex)
{
throw new Exception(ex.Message,ex);
}
return nodeList.Count;
}
2012年01月10日 16点01分 1
1