チュートリアル : データセットへの XML データの読み込み
ADO.NET には、XML データを使用するための簡単な方法が用意されています。 このチュートリアルでは、XML データをデータセットに読み込む Windows アプリケーションを作成します。 読み込まれたデータセットは DataGridView に表示されます。 最後に、XML ファイルの内容に基づいた XML スキーマがテキスト ボックスに表示されます。
このチュートリアルは、主に次の 5 つの手順で構成されています。
新しいプロジェクトを作成します。
データセットに読み込む XML ファイルを作成します。
ユーザー インターフェイスを作成します。
データセットを作成し、XML ファイルを読み込んで DataGridView コントロールに表示します。
XML ファイルに基づく XML スキーマを TextBox コントロールに表示するためのコードを追加します。
注意
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。
新しいプロジェクトの作成
この手順では、このチュートリアルを含める Visual Basic プロジェクトまたは Visual C# プロジェクトを作成します。
新しい Windows プロジェクトを作成するには
[ファイル] メニューで新しいプロジェクトを作成します。
プロジェクトに「ReadingXML」という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。 詳細については、「Windows ベースのアプリケーションの作成」を参照してください。
ReadingXML プロジェクトが作成されてソリューション エクスプローラーに追加されます。
データセットに読み込む XML ファイルの作成
このチュートリアルでは、データセットへの XML データの読み込みについて重点的に説明するため、XML ファイルの内容を説明します。
データセットに読み込む XML ファイルを作成するには
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[XML ファイル] をクリックし、ファイルに「authors.xml」という名前を付けて、[追加] をクリックします。
XML ファイルがデザイナーに読み込まれ、編集できるようになります。
エディターで XML 宣言の下に次のコードを貼り付けます。
<Authors_Table> <authors> <au_id>172-32-1176</au_id> <au_lname>White</au_lname> <au_fname>Johnson</au_fname> <phone>408 496-7223</phone> <address>10932 Bigge Rd.</address> <city>Menlo Park</city> <state>CA</state> <zip>94025</zip> <contract>true</contract> </authors> <authors> <au_id>213-46-8915</au_id> <au_lname>Green</au_lname> <au_fname>Margie</au_fname> <phone>415 986-7020</phone> <address>309 63rd St. #411</address> <city>Oakland</city> <state>CA</state> <zip>94618</zip> <contract>true</contract> </authors> <authors> <au_id>238-95-7766</au_id> <au_lname>Carson</au_lname> <au_fname>Cheryl</au_fname> <phone>415 548-7723</phone> <address>589 Darwin Ln.</address> <city>Berkeley</city> <state>CA</state> <zip>94705</zip> <contract>true</contract> </authors> <authors> <au_id>267-41-2394</au_id> <au_lname>Hunter</au_lname> <au_fname>Anne</au_fname> <phone>408 286-2428</phone> <address>22 Cleveland Av. #14</address> <city>San Jose</city> <state>CA</state> <zip>95128</zip> <contract>true</contract> </authors> <authors> <au_id>274-80-9391</au_id> <au_lname>Straight</au_lname> <au_fname>Dean</au_fname> <phone>415 834-2919</phone> <address>5420 College Av.</address> <city>Oakland</city> <state>CA</state> <zip>94609</zip> <contract>true</contract> </authors> </Authors_Table>
[ファイル] メニューの [authors.xml の保存] をポイントします。
ユーザー インターフェイスの作成
このアプリケーションのユーザー インターフェイスは、次のコントロールで構成されています。
XML ファイルの内容をデータとして表示する DataGridView コントロール
XML ファイルの XML スキーマを表示する TextBox コントロール
2 つの Button コントロール
1 つのボタンは XML ファイルをデータセットに読み込んで DataGridView コントロールに表示します。
もう 1 つのボタンは、データセットからスキーマを抽出し、StringWriter を使用して TextBox コントロールに表示します。
フォームにコントロールを追加するには
デザイン ビューで Form1 を開きます。
ツールボックスからフォームに次のコントロールをドラッグします。
1 つの DataGridView コントロール
1 つの TextBox コントロール
2 つの Button コントロール
次のプロパティを設定します。
コントロール
プロパティ
設定
TextBox1
Multiline
true
ScrollBars
Vertical
Button1
Name
ReadXmlButton
Text
Read XML
Button2
Name
ShowSchemaButton
Text
Show Schema
XML データを受け取るデータセットの作成
次に、authors という名前の新しいデータセットを作成します。 データセットの詳細については、「Visual Studio でのデータセットの操作」を参照してください。
XML データを受け取るデータセットを新規作成するには
ソリューション エクスプローラーで Form1 のソース ファイルを選択し、ソリューション エクスプローラーの [デザイナーの表示] をクリックします。
[データ] タブ (ツールボックス)から Form1 にデータセットをドラッグします。
[データセットの追加] ダイアログ ボックスの [型指定のないデータセット] を選択して、[OK] をクリックします。
DataSet1 がコンポーネント トレイに追加されます。
[プロパティ] ウィンドウで、Name プロパティおよび DataSetName プロパティを AuthorsDataSet に設定します。
XML をデータセットに読み込むイベント ハンドラーの作成
[Read XML] ボタンを使うと、XML ファイルがデータセットに読み込まれ、ファイルをデータセットにバインドする DataGridView コントロールのプロパティが設定されます。
ReadXmlButton_Click イベント ハンドラーにコードを追加するには
ソリューション エクスプローラーの [Form1] をクリックし、ソリューション エクスプローラー ツール バーの [デザイナーの表示] をクリックします。
[Read XML] をダブルクリックします。
コード エディターが開き、ReadXmlButton_Click イベント ハンドラーが表示されます。
ReadXmlButton_Click イベント ハンドラー内に次のコードを入力します。
Private Sub ReadXmlButton_Click() Handles ReadXmlButton.Click Dim filePath As String = "Complete path where you saved the XML file" AuthorsDataSet.ReadXml(filePath) DataGridView1.DataSource = AuthorsDataSet DataGridView1.DataMember = "authors" End Sub
private void ReadXmlButton_Click(object sender, EventArgs e) { string filePath = "Complete path where you saved the XML file"; AuthorsDataSet.ReadXml(filePath); dataGridView1.DataSource = AuthorsDataSet; dataGridView1.DataMember = "authors"; }
ReadXMLButton_Click イベント ハンドラーのコードで、filepath = の設定を正しいパスに変更します。
テキスト ボックスにスキーマを表示するイベント ハンドラーの作成
[Show Schema] をクリックすると、StringWriter オブジェクトが作成されます。このオブジェクトは、スキーマを格納しており、TextBox に表示されます。
ShowSchemaButton_Click イベント ハンドラーにコードを追加するには
ソリューション エクスプローラーで Form1 を選択し、[デザイナーの表示] をクリックします。
[Show Schema] をダブルクリックします。
コード エディターが開き、ShowSchemaButton_Click イベント ハンドラーが表示されます。
ShowSchemaButton_Click イベント ハンドラー内に次のコードを入力します。
Private Sub ShowSchemaButton_Click() Handles ShowSchemaButton.Click Dim swXML As New System.IO.StringWriter() AuthorsDataSet.WriteXmlSchema(swXML) TextBox1.Text = swXML.ToString End Sub
private void ShowSchemaButton_Click(object sender, EventArgs e) { System.IO.StringWriter swXML = new System.IO.StringWriter(); AuthorsDataSet.WriteXmlSchema(swXML); textBox1.Text = swXML.ToString(); }
テスト
フォームをテストして、期待どおりに動作することを確認します。
フォームをテストするには
F5 キーを押してアプリケーションを実行します。
[Read XML] をクリックします。
XML ファイルの内容が DataGridView に表示されます。
[Show Schema] をクリックします。
XML ファイルの XML スキーマがテキスト ボックスに表示されます。
次の手順
このチュートリアルでは、データセットに XML ファイルを読み込む方法の基本と、XML ファイルの内容に基づくスキーマの作成方法の基本を示します。 ここでは、次の作業を行います。
データセットのデータを編集し、XML としてデータセットに書き込みます。 詳細については、「WriteXml」を参照してください。
データセットのデータを編集し、データベースに書き込みます。 詳細については、「データの保存」を参照してください。