您的位置:首页 > 数据库

xml 数据 写入 数据库 转帖

2008-03-21 11:34 741 查看
在操练之前,先准备一个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文档写入数据库

你在需要的时候调用此方法就可以将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中的内容写入数据库 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息