xml 数据 写入 数据库 转帖

本文介绍如何使用XML文件与数据库进行交互,包括将XML文件内容读入DataSet并展示在GridView中,以及将XML文件内容更新到数据库的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在操练之前,先准备一个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中的内容写入数据库 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值