我有一个XML文件:
<?xml version="1.0" standalone="yes" ?>
- <ISCMDB>
- <Department>
<DepartmentID>D001,D002,D003,D004,D005,D006,D007,</DepartmentID>
<DepartmentName>人事部,销售部,仓管部,采购部,运输部,财务部,高管层,</DepartmentName>
</Department>
- <BackProductInfo>
<ID>197,211,214,</ID>
<BackInvoiceID>TH200782134026,TH200782134138,TH200782164339,</BackInvoiceID>
<BackFromID>5454,1227,5454,</BackFromID>
<BrandID>1,1,1,</BrandID>
<CustomerID>2,1,2,</CustomerID>
<TypeID>17,17,17,</TypeID>
<Saleslip>FH20078293350,XS200782105534,FH20078216845,</Saleslip>
<Quantity>5,10,10,</Quantity>
<AllWithdrawalMoney>640,1280,1280,</AllWithdrawalMoney>
<WithdrawalDate>2007-8-1 0:00:00,2007-8-1 0:00:00,2007-8-2 0:00:00,</WithdrawalDate>
<Proposer>啊,啊,啊,</Proposer>
<Assessor>啊,啊,,</Assessor>
<CheckDate>2007-8-2 13:41:11,2007-8-2 13:43:21,,</CheckDate>
<CheckState>,1,,</CheckState>
<CheckOpinion>,好!,,</CheckOpinion>
</BackProductInfo>
- <Shop>
<ShopID>1,5454,10006,10010,10011,10012,</ShopID>
<BrandID>1,2,1,1,1,2,</BrandID>
<AreaID>125,258,258,125,125,125,</AreaID>
<ShopName>亚贸中心,广埠屯中心,群光中心,洪山店,新世界中心,亚贸广场分店,</ShopName>
<DeportID>CK005,CK004,CK003,CK012,CK001,CK002,</DeportID>
<Re>,,656,销售总额暂时领先,,很一般,</Re>
</Shop>
</ISCMDB>ISCMDB是数据库的名字,依次节点为数据库的表名、字段名,值为字段的相关值
如何将这个XML文件再写入到SQL的ISCMDB文件啊?
<?xml version="1.0" standalone="yes" ?>
- <ISCMDB>
- <Department>
<DepartmentID>D001,D002,D003,D004,D005,D006,D007,</DepartmentID>
<DepartmentName>人事部,销售部,仓管部,采购部,运输部,财务部,高管层,</DepartmentName>
</Department>
- <BackProductInfo>
<ID>197,211,214,</ID>
<BackInvoiceID>TH200782134026,TH200782134138,TH200782164339,</BackInvoiceID>
<BackFromID>5454,1227,5454,</BackFromID>
<BrandID>1,1,1,</BrandID>
<CustomerID>2,1,2,</CustomerID>
<TypeID>17,17,17,</TypeID>
<Saleslip>FH20078293350,XS200782105534,FH20078216845,</Saleslip>
<Quantity>5,10,10,</Quantity>
<AllWithdrawalMoney>640,1280,1280,</AllWithdrawalMoney>
<WithdrawalDate>2007-8-1 0:00:00,2007-8-1 0:00:00,2007-8-2 0:00:00,</WithdrawalDate>
<Proposer>啊,啊,啊,</Proposer>
<Assessor>啊,啊,,</Assessor>
<CheckDate>2007-8-2 13:41:11,2007-8-2 13:43:21,,</CheckDate>
<CheckState>,1,,</CheckState>
<CheckOpinion>,好!,,</CheckOpinion>
</BackProductInfo>
- <Shop>
<ShopID>1,5454,10006,10010,10011,10012,</ShopID>
<BrandID>1,2,1,1,1,2,</BrandID>
<AreaID>125,258,258,125,125,125,</AreaID>
<ShopName>亚贸中心,广埠屯中心,群光中心,洪山店,新世界中心,亚贸广场分店,</ShopName>
<DeportID>CK005,CK004,CK003,CK012,CK001,CK002,</DeportID>
<Re>,,656,销售总额暂时领先,,很一般,</Re>
</Shop>
</ISCMDB>ISCMDB是数据库的名字,依次节点为数据库的表名、字段名,值为字段的相关值
如何将这个XML文件再写入到SQL的ISCMDB文件啊?
解决方案 »
- OpenXML操作Excel提示SharedStringTablePart序列为空
- 错误: 在选定的数据源上未找到名为“PaperState”的字段或属性。
- 请教,多个按钮用的同一个菜单,那么
- c#调用C++ DLL 尝试读取或写入受保护的内存
- Winform多窗体设计的问题!
- 请教 关于 正则表达式 的简单使用
- 我用c#.net做了一个windows插件,我想要运行在一台有.netframework的机器上,那我要怎么做(用。net的工具打包成安装程序除外)
- 窗体1的面板中如何显示窗体2
- C# 对象不能从 DBNull 转换为其他类型
- 求一个模仿类似的打印程序!唉,好几天了都没有搞定,急死了。
- winfrom中复选框和单选框如何分组
- 为什么我的程序每次启动时都需要找安装包?
格式应该如下
<?xml version="1.0" encoding="UTF-8" ?>
<tables>
<table name="Department " Path="Computer">
<field name="DepartmentID" />
<field name="DepartmentName" />
</table>
<tables>
<table name="BackProductInfo" Path="BackProductInfo">>
<field name="ID" />
………………………
</table>
</tables>然后根据给定的模板,匹配你的XML每个节点的内容再循环构建SQL,插入对应的表中
给你一个例子
#region 写入表中
/// <summary>
/// 将单个XMl中的数据写入表中
/// </summary>
/// <returns></returns>
private bool WriteTableByXMLNew()
{
int lngComputerID=0;
System.Xml.XmlNodeList list ;
System.Xml.XmlNodeList EveryTable = doc.DocumentElement.SelectNodes("table");
//循环模板文件,得到每个表名 foreach(XmlNode tmpTable in EveryTable)
{
string strName = tmpTable.Attributes["name"].InnerText;
string sqlCmd = "",val,field,sqlVal="";
string strPath = "";
this.SetFieldMaxLen(strName);
strPath = tmpTable.Attributes["Path"].InnerText;
list = this.docNew.SelectNodes (strPath);
#region 循环所有子节点记录,写入全部数据 for (int i = 0;i < list.Count ;i ++)
{
//构建SQL语句
sqlCmd = "insert into [" + strName + "] (";
//写入一个表的数据 for (int ii=0;ii<tmpTable.ChildNodes.Count;ii++)
{
field = tmpTable.ChildNodes[ii].Attributes["name"].InnerText;
sqlCmd += "[" +tmpTable.ChildNodes[ii].Attributes["name"].InnerText+"]";
sqlCmd += " ,"; val = this.GetFieldValue (list.Item (i),field);
sqlVal += "'"+val + "',";
}
sqlCmd = sqlCmd.Substring (0,sqlCmd.Length -1);
sqlCmd += ") values (" + sqlVal.Substring (0,sqlVal.Length -1)+")";
if (!this.Sqlca .ExecuteNonQuery (sqlCmd))
{
this.LastError = this.Sqlca .LastError ;
return false;
}
}
#endregion
}
return true;
} #endregion
将虚拟表赋给架构表,再用Update()方法更新数据库就行了