XMLの活用

 DataSetのメソッドにはXMLファイルとやり取りするメソッドが用意されています。WirteXmlメソッドを使って出力したり、ReadXmlメソッドを使って入力したりすることができます。また、スキーマ情報のみの読み書きもできます。

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 Windows フォーム アプリケーション
プロジェクト名 XmlTest

サンプルダウンロード

○ フォームデザイン

 次の図のようにコントロールを配置してください。そして、DataAdapterと、DataSetを作成してください。AdapterはM_ユーザーテーブルを読み込みます。DataGridViewのDataSourceプロパティはDataSetを指定してください。

コントロールの配置例
コントロールの配置例

○ プログラム

 次のように各イベントプロシージャを記述してください。

Form1.vb

  1. 'XMLスキーマファイル名
  2. Const xs_name As String = "C:¥Work¥schema.xml"
  3. 'XMLデータファイル名
  4. Const xf_name As String = "C:¥Work¥data.xml"
  5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.  'データセットの同期
  7.  Me.SqlDataAdapter1.Fill(Me.DataSet11)
  8.  'データセットをグリッドビューにセット
  9.  Me.DataGridView1.DataSource = Me.DataSet11.Tables(0)
  10. End Sub
  11. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  12.  'XMLスキーマの出力
  13.  Me.DataSet11.WriteXmlSchema(xs_name)
  14. End Sub
  15. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  16.  'XMLデータの出力
  17.  Me.DataSet11.WriteXml(xf_name)
  18. End Sub
  19. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  20.  Dim dt As New DataSet
  21.  Dim dc As DataColumn
  22.  'XMLスキーマの入力
  23.  dt.ReadXmlSchema(xs_name)
  24.  '入力したスキーマをリストに表示
  25.  For Each dc In dt.Tables(0).Columns
  26.   Me.ListBox1.Items.Add(dc.ColumnName & ControlChars.Tab & dc.DataType.ToString)
  27.  Next
  28. End Sub
  29. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  30.  Dim dt As New DataSet()
  31.  Dim dr As DataRow
  32.  'XMLデータの入力
  33.  dt.ReadXml(xf_name)
  34.  '入力したデータをリストに表示
  35.  For Each dr In dt.Tables(0).Rows
  36.   Dim i As Integer
  37.   Dim str As String = ""
  38.   For i = 0 To dt.Tables(0).Columns.Count - 1
  39.    str &= dr(i) & ControlChars.Tab
  40.   Next
  41.   Me.ListBox2.Items.Add(str)
  42.  Next
  43. End Sub

○ 実行結果

実行結果
実行結果

 今回のサンプルは、WriteXmlSchemaメソッドを利用してテーブル構造を出力し、それをReadXmlSchemaメソッドで読み込んで、列の一覧を表示しました。また、WirteXmlメソッドを利用してデータを出力し、それをReadXmlメソッドで読み込んで、データの一覧を表示しました。

前へ   次へ