现在的位置: 首页 > 综合 > 正文

.net实例:vb.net DataSet 操作xml文件

2013年10月26日 ⁄ 综合 ⁄ 共 1759字 ⁄ 字号 评论关闭

      说明:在微软ado.net 2.0版本中,还不能把整个xml文件映射到DataSet集中。也就是说,XML装入到DataSet时,总是能成功,但是在修改了数据保存时,DataSet始终按默认的格式保存,当不符合这种格式的XML文件出现时,将写为不合格的xml文件,因此许多网友反映,DataSet写xml文件出错。如果读者要调式时,要看DataSet倒底输出的xml文件是什么样子时,请以文件流的形式调用writexml方法;如果用文件名的方式,vs直接报告出错而无法查看。
      微软所默认的DataSet能准确无误操作的xml格式是什么样的呢?
      以数据库映射为xml文件的观点描述。
DataSet表示一个数据库,对应着xml第一层;一个关系表的记录对应xml第二层,一个记录中的各列的值,对应第三层。如何区分表的呢?xml第二层中节点名称对应着关系表。
 
即:

  1. <?xml version="1.0" standalone="yes" ?> 
  2. <NewDataSet>
  3. <表1> <!—表1的记录1-->
  4.   <字段1>字段值</字段1> 
  5.   <字段2>字段值</字段2> 
  6. </表1>
  7. <表1> <!—表1的记录2-->
  8.   <字段1>字段值</字段1> 
  9.   <字段2>字段值</字段2> 
  10. </表1>
  11. <表2><!—表2的记录1-->
  12.    <字段1>字段值</字段1> 
  13.    <字段2>字段值</字段2>
  14. </表2>
  15. </NewDataSet>
  1. Imports System.Xml
  2. Public Class Form1
  3.     Dim ds As DataSet ''公共变 量
  4.     Dim DataGrid1 As New DataGrid()
  5.     ''要操作的xml文件路径     Dim filepath As String = Application.StartupPath & "/mytest.xml"
  6.     ''以下是DataSet装载xml文件,并把dataset与DataGrid捆绑 显示在窗体中
  7.     Private Sub Button1_Click(ByVal sender As System.Object, _
  8.           ByVal e As System.EventArgs) Handles Button1.Click
  9.         ds = New DataSet()
  10.         ds.ReadXml(filepath)
  11.         DataGrid1.Size = Me.Size
  12.         DataGrid1.DataSource = ds.Tables("item")’把xml中第二层的节点名为item作为表
  13.         Me.Controls.Add(DataGrid1) ''把datagrid加入到窗体中供显 示
  14.     End Sub
  15.     ''以下是DataSet保存数 据到xml
  16.     Private Sub Button2_Click(ByVal sender As System.Object, _
  17.         ByVal e As System.EventArgs) Handles Button2.Click
  18.         ds.WriteXml(filepath)
  19.     End Sub
  20. End Class

----下面是操作的xml文件

  1. <?xml version="1.0" standalone="yes" ?> 
  2. <NewDataSet>
  3. <item>
  4.   <title>tiltle</title> 
  5.   <description>hello aaa</description> 
  6. </item>
  7. <item>
  8.   <title>111</title> 
  9.   <description>222</description> 
  10. </item>
  11. <student>
  12.   <no>11</no> 
  13.   <name>zhang shan</name> 
  14. </student>
  15. </NewDataSet>

       说明:上面这个xml文件在映身到DataSet时,有两个表:item与student.第一层有两类节点,一类名字是item,另一类是student

抱歉!评论已关闭.