Visual Studio を使用して .NET Framework でデータセットを作成および構成する

Note

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

データセットとは、データベースからのデータをメモリに格納し、データベースに常に接続していなくても、そのデータに対する作成、読み取り、更新、削除 (CRUD) 操作を可能にするための変更追跡をサポートする一連のオブジェクトです。 データセットは、単純な "フォーム オーバー データ" ビジネス アプリケーション向けに設計されています。 新しいアプリケーションの場合は、Entity Framework を使用して、データをメモリに格納し、モデル化することを検討してください。 データセットを操作するには、データベースの概念に関する基本的な知識が必要です。

Visual Studio のデータ ソース構成ウィザードを使用して、型指定された DataSet クラスをデザイン時に作成できます。 プログラムによってデータセットを作成する方法については、データセットの作成 (ADO.NET) に関する記事を参照してください。

データ ソース構成ウィザードを使用して新しいデータセットを作成する

  1. Visual Studio で自分のプロジェクトを開き、 [プロジェクト]>[新しいデータ ソースの追加] の順に選択して、データ ソース構成ウィザードを開始します。

  2. 接続先となるデータ ソースの種類を選択します。

    データ ソース構成ウィザードを示すスクリーンショット。

  3. オプションの一覧から DataSet を選択します。

    データベース モデルとして DataSet が選択されていることを示すスクリーンショット。

  4. データセットのデータ ソースとなる 1 つまたは複数のデータベースを選択します。

    接続を選択する方法を示すスクリーンショット。

  5. 接続文字列を app.config に保存するかどうかを選択します。

    アプリケーションの構成ファイルに接続文字列を保存するオプションを示すスクリーンショット。

  6. データセットで表示する、データベースのテーブル (または個々の列)、ストアド プロシージャ、関数、ビューを選択します。

    データベース オブジェクトを選択する方法を示すスクリーンショット。

  7. [完了] をクリックします。

    データセットは、ソリューション エクスプローラーにノードとして表示されます。

    ソリューション エクスプローラーで DataSet が示されているスクリーンショット。

  8. ソリューション エクスプローラーでデータセット ノードをクリックして、データセット デザイナーでデータセットを開きます。 データセット内の各テーブルには、TableAdapter オブジェクトが関連付けられています。これは下部に表示されます。 テーブル アダプターは、データセットを設定し、必要に応じて、データベースにコマンドを送信するために使用されます。

    データセット デザイナーでデータ テーブルが示されているスクリーンショット。

  9. テーブルを関連付けるリレーションシップ線は、データベースで定義されているテーブル リレーションシップを表します。 既定では、データベースの外部キー制約はリレーションシップとしてのみ表され、更新と削除のルールはなしに設定されています。 通常はこれが求められています。 ただし、線をクリックして [リレーションシップ] ダイアログを表示し、階層更新の動作を変更することもできます。 詳細については、データセットのリレーションシップに関する記事および「階層更新」を参照してください。

    データセットの [リレーションシップ] ダイアログ

  10. テーブル、テーブル アダプター、またはテーブルの列名をクリックして、 [プロパティ] ウィンドウにプロパティを表示します。 ここで一部の値を変更できます。 変更するのはソース データベースではなく、データセットであることに注意してください。

    DataSet 列のプロパティを示すスクリーンショット。

  11. [ツールボックス] タブから項目をドラッグして、データセットに新しいテーブルやテーブル アダプターを追加したり、既存のテーブル アダプターの新しいクエリを追加したりできます。また、テーブル間の新しいリレーションシップを指定することもできます。このタブは、データセット デザイナーにフォーカスがあるときに表示されます。

    DataSet の [ツールボックス] を示すスクリーンショット。

次に、データセットにデータを設定する方法を指定できます。 そのためには、TableAdapter 構成ウィザードを使用します。 詳細については、「TableAdapters を使用してデータセットを入力する」を参照してください。

データベース テーブルまたは他のオブジェクトを既存のデータセットに追加する

この手順では、最初にデータセットを作成するときに使用したのと同じデータベースからテーブルを追加する方法を示します。

  1. ソリューション エクスプローラーでデータセット ノードをクリックして、データセット デザイナーにフォーカスを移します。

  2. Visual Studio の左の余白にある [データ ソース] タブをクリックするか、検索ボックスに「データ ソース」と入力します。

  3. データセット ノードを右クリックし、 [ウィザードでデータ ソースを構成] を選択します。

    [データ ソース] のコンテキスト メニューを示すスクリーンショット。

  4. ウィザードを使用して、データセットに追加するテーブル、ストアド プロシージャ、または他のデータベース オブジェクトを指定します。

スタンドアロンのデータ テーブルをデータセットに追加する

  1. データセット デザイナーでご自分のデータセットを開きます。

  2. [ツールボックス][データセット] タブからデータセット デザイナーに、DataTable クラスをドラッグします。

  3. 列を追加してデータ テーブルを定義します。 テーブルを右クリックし、 [追加]>[列] の順に選択します。 [プロパティ] ウィンドウを使用して、列のデータ型と、必要に応じてキーを設定します。

スタンドアロンのテーブルでは、データを入力できるように、Fill ロジックを実装する必要があります。 データ テーブルへの入力については、「DataAdapter からの DataSet の読み込み」を参照してください。