.NET Framework アプリケーションのデータセットへの XML データの読み取り

Note

データセットと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初期からのレガシ .NET Framework テクノロジです。 これらが特に役立つのは、ユーザーがデータを変更し、変更をデータベースに戻して保持できるようにするアプリケーションです。 データセットは非常に優れたテクノロジであることが証明されていますが、新しい .NET アプリケーションでは Entity Framework Core を使用することをお勧めしています。 Entity Framework には、オブジェクト モデルとして表形式データを操作する、より自然な方法が用意されており、よりシンプルなプログラミング インターフェイスが備わっています。

ADO.NET には、XML データを操作するための単純なメソッドが用意されています。 このチュートリアルでは、XML データをデータセットに読み込む Windows アプリケーションを作成します。 次に、データセットが DataGridView コントロールに表示されます。 最後に、XML ファイルの内容に基づく XML スキーマがテキスト ボックスに表示されます。

前提条件

このチュートリアルを完了するには、次のワークロードがインストールされた Visual Studio が必要です。

  • .NET デスクトップ開発
  • データ ストレージと処理

これらをインストールするには、Visual Studio インストーラーを開き、変更する Visual Studio のバージョンの横にある [変更] (または [その他]>[変更] ) を選択します。 Visual Studio の変更に関するページを参照してください。

新しいプロジェクトを作成する

C# または Visual Basic 用の新しい Windows フォーム アプリ プロジェクトを作成します。 プロジェクトに ReadingXML という名前を付けます。

データセットに読み込む XML ファイルを生成する

このチュートリアルでは、XML データをデータセットに読み込むことに重点を置いて、XML ファイルの内容を示します。

  1. [プロジェクト] メニューで、 [新しい項目の追加] を選択します。

  2. [XML ファイル] を選択し、ファイルに authors.xml という名前を指定して、 [追加] を選択します。

    XML ファイルがデザイナーに読み込まれ、編集できる状態になります。

  3. 次の 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>
    
  4. [ファイル] メニューの [authors.xml を保存] を選択します。

ユーザー インターフェイスを作成する

このアプリケーションのユーザー インターフェイスは、次の要素で構成されています。

  • XML ファイルの内容をデータとして表示する DataGridView コントロール。

  • XML ファイルの XML スキーマを表示する TextBox コントロール。

  • 2 つの Button コントロール。

    • ボタンの 1 つは、XML ファイルをデータセットに読み込み、DataGridView コントロールに表示するために使用します。

    • 2 番目のボタンは、データセットからスキーマを抽出し、StringWriter を使用して TextBox コントロールに表示するために使用します。

フォームにコントロールを追加するには

  1. デザイン ビューで Form1 を開きます。

  2. [ツールボックス] から、次のコントロールをフォームにドラッグします。

  3. 次のプロパティを設定します。

    コントロール プロパティ 設定
    TextBox1 Multiline true
    スクロールバー 垂直方向
    Button1 名前 ReadXmlButton
    [テキスト] Read XML
    Button2 名前 ShowSchemaButton
    Text Show Schema

XML データを受け取るデータセットを作成する

この手順では、authors という名前の新しいデータセットを作成します。 データセットの詳細については、「Visual Studio のデータセット ツール」を参照してください。

  1. ソリューション エクスプローラーで、Form1 のソース ファイルを選択し、 [ソリューション エクスプローラー] ツールバーの [ビュー デザイナー] ボタンを選択します。

  2. ツールボックス、[データ] タブから、DataSetForm1 にドラッグします。

  3. [データセットの追加] ダイアログ ボックスで、 [型指定されていないデータセット][OK] の順に選択します。

    DataSet1 がコンポーネント トレイに追加されます。

  4. [プロパティ] ウィンドウで、AuthorsDataSet[名前]DataSetName プロパティを設定します。

XML ファイルをデータセットに読み込むイベント ハンドラーを作成する

[XML の読み取り] ボタンを使用すると、XML ファイルがデータセットに読み込まれます。 次に、それをデータセットにバインドする DataGridView コントロールのプロパティが設定されます。

  1. ソリューション エクスプローラーで、Form1 を選択し、 [ソリューション エクスプローラー] ツールバーの [ビュー デザイナー] ボタンを選択します。

  2. [XML の読み取り] ボタンをダブルクリックします。

    コード エディターReadXmlButton_Click イベント ハンドラーが表示されます。

  3. 次のコードを ReadXmlButton_Click イベント ハンドラーに入力します。

    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";
    }
    
  4. ReadXMLButton_Click イベント ハンドラーのコードで、filepath = エントリを正しいパスに変更します。

イベント ハンドラーを作成し、テキスト ボックスにスキーマを表示する

[スキーマの表示] ボタンを使用すると、スキーマを格納した StringWriter オブジェクトが作成され、TextBox コントロールに表示されます。

  1. ソリューション エクスプローラーで、Form1 を選択し、 [ビュー デザイナー] ボタンを選択します。

  2. [スキーマの表示] ボタンをダブルクリックします。

    コード エディターShowSchemaButton_Click イベント ハンドラーが表示されます。

  3. ShowSchemaButton_Click イベント ハンドラーに次のコードを貼り付けます。

    private void ShowSchemaButton_Click(object sender, EventArgs e)
    {
        System.IO.StringWriter swXML = new System.IO.StringWriter();
        AuthorsDataSet.WriteXmlSchema(swXML);
        textBox1.Text = swXML.ToString();
    }
    

フォームをテストする

フォームをテストして、期待どおりに動作することを確認します。

  1. F5 キーを選択してアプリケーションを実行します。

  2. [XML の読み取り] ボタンを選択します。

    DataGridView に XML ファイルの内容が表示されます。

  3. [スキーマの表示] ボタンを選択します。

    テキスト ボックスに XML ファイルの XML スキーマが表示されます。

次のステップ

このチュートリアルでは、XML ファイルをデータセットに読み込む方法、および XML ファイルの内容に基づいてスキーマを作成する方法の基本について説明します。 次に行う作業を以下に示します。

  • データセット内のデータを編集し、XML として書き戻します。 詳細については、「WriteXml」を参照してください。

  • データセット内のデータを編集し、データベースに書き込みます。