XMLの活用
DataSetのメソッドにはXMLファイルとやり取りするメソッドが用意されています。WirteXmlメソッドを使って出力したり、ReadXmlメソッドを使って入力したりすることができます。また、スキーマ情報のみの読み書きもできます。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 |
Windows フォーム アプリケーション |
プロジェクト名 |
XmlTest |
サンプルダウンロード
○ フォームデザイン
次の図のようにコントロールを配置してください。そして、DataAdapterと、DataSetを作成してください。AdapterはM_ユーザーテーブルを読み込みます。DataGridViewのDataSourceプロパティはDataSetを指定してください。
コントロールの配置例
○ プログラム
次のように各イベントプロシージャを記述してください。
Form1.vb
- 'XMLスキーマファイル名
- Const xs_name As String = "C:¥Work¥schema.xml"
- 'XMLデータファイル名
- Const xf_name As String = "C:¥Work¥data.xml"
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'データセットの同期
- Me.SqlDataAdapter1.Fill(Me.DataSet11)
- 'データセットをグリッドビューにセット
- Me.DataGridView1.DataSource = Me.DataSet11.Tables(0)
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- 'XMLスキーマの出力
- Me.DataSet11.WriteXmlSchema(xs_name)
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- 'XMLデータの出力
- Me.DataSet11.WriteXml(xf_name)
- End Sub
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- Dim dt As New DataSet
- Dim dc As DataColumn
- 'XMLスキーマの入力
- dt.ReadXmlSchema(xs_name)
- '入力したスキーマをリストに表示
- For Each dc In dt.Tables(0).Columns
- Me.ListBox1.Items.Add(dc.ColumnName & ControlChars.Tab & dc.DataType.ToString)
- Next
- End Sub
- Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- Dim dt As New DataSet()
- Dim dr As DataRow
- 'XMLデータの入力
- dt.ReadXml(xf_name)
- '入力したデータをリストに表示
- For Each dr In dt.Tables(0).Rows
- Dim i As Integer
- Dim str As String = ""
- For i = 0 To dt.Tables(0).Columns.Count - 1
- str &= dr(i) & ControlChars.Tab
- Next
- Me.ListBox2.Items.Add(str)
- Next
- End Sub
○ 実行結果
実行結果
今回のサンプルは、WriteXmlSchemaメソッドを利用してテーブル構造を出力し、それをReadXmlSchemaメソッドで読み込んで、列の一覧を表示しました。また、WirteXmlメソッドを利用してデータを出力し、それをReadXmlメソッドで読み込んで、データの一覧を表示しました。
前へ 次へ