将XML文档写入数据库的两种方法

1.在操练之前,先准备一个XML文件FirstXml.xml和FirstXml.xsd,并且这两个文件都在根目录下面,其内容分别如下:
FirstXml.xml
{
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table>
    <ID>1</ID>
    <TEXT>AAA</TEXT>
    <BELONG>0</BELONG>
  </Table>
  <Table>
    <ID>2</ID>
    <TEXT>BBB</TEXT>
    <BELONG>0</BELONG>
  </Table>
  <Table>
    <ID>3</ID>
    <TEXT>CCC</TEXT>
    <BELONG>0</BELONG>
  </Table> 
</NewDataSet>
}
FirstXml.xsd
{
 <?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
     This code was generated by a tool to store the dataset designer's layout information.
     Changes to this file may cause incorrect behavior and will be lost if
     the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd=" http://www.w3.org/2001/XMLSchema " ex:showrelationlabel="False" ViewPortX="0" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
  <Shapes>
    <Shape ID="DesignTable:Table" ZOrder="1" X="70" Y="70" Height="79" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="22" SplitterPosition="75" />
  </Shapes>
  <Connectors />
</DiagramLayout>
}
2.下面的代码会将上面的XML文档写入数据库
    public void ReadXmlToSaveToTableMethordone()
   {
      SqlConnection conn = new SqlConnection("server=david;database=test;uid=sa;pwd=");
      conn.Open();
      XmlDocument xd = new XmlDocument();
      xd.Load(Server.MapPath("~//") + "FirstXml.xml");
      XmlNodeList xn = xd.SelectNodes("NewDataSet/Table");
      string text;
      int belong;
      for (int i = 0; i < xn.Count; i++)
      {
         XmlNode id = xn[i].SelectSingleNode("ID");
         text = xn[i].SelectSingleNode("TEXT").InnerText;
         belong = Convert.ToInt32(xn[i].SelectSingleNode("BELONG").InnerText);
         Response.Write(id.InnerText.ToString() + "|" + text + "|" + belong + "<br>");
         SqlCommand comm = new SqlCommand("insert into tree(text,belong) values('"+text+"',"+belong+")",conn);
         comm.ExecuteNonQuery();
      }
      conn.Close();
   }

你在需要的时候调用此方法就可以将XML文档中的内容写入数据库

3.也可以将XML文档读入到DATASET中,如果您添加了一个GRIDVIEW(VS2005)或者GRIDVIEW(VS2003),就可以显示DATASET中的数据了,代码如下:
{public void Show()
   {
      ReadTableToXml();
      DataSet ds = new DataSet();
      string pathxml = Server.MapPath("~//") + "FirstXml.xml";
      string pathxsd = Server.MapPath("~//") + "FirstXml.xsd";
      ds.ReadXmlSchema(pathxsd);
      ds.ReadXml(pathxml);
      this.GridView1.DataSource = ds.Tables["Table"];
      this.GridView1.DataBind();     
   }

4.在2中是将XML文档直接写入数据库的,那么有人会问,是不是可以先将XML文档读入DATASET中,然后将DATASET中的内容更新到数据库 中?答案是肯定的.咱们现在就以上面的XML文档为例,在操作之前应该先建立一个和XML文档的数据结构相同数据库.其实在2中也是这么做的.这个数据库 就上TEST,所用的数据表就是TREE.下面的代码实现了上述的功能.
  public void ReadXmlToSaveToTableMethordone()
   {
      SqlConnection conn = new SqlConnection("server=david;database=test;uid=sa;pwd=");
      SqlDataAdapter da = new SqlDataAdapter("select * from tree where id=-1", conn);
      SqlCommandBuilder cbuider = new SqlCommandBuilder(da);
      DataSet ds = new DataSet();
      da.Fill(ds);
      string pathxml = Server.MapPath("~//") + "FirstXml.xml";
      string pathxsd = Server.MapPath("~//") + "FirstXml.xsd";
      ds.ReadXmlSchema(pathxsd);
      ds.ReadXml(pathxml);
      da.Update(ds);
      Response.Write("okokokokokok");
}

到此为至,你就会发现,将一个XML文档写入数据库有两中方案,一种是直接将XML文档写入数据库,就如2,另一种是将XML文档先读如到DATASET,然后将DATASET中的内容写入数据库.


  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值