ADO.NET アプリケーションにデータ ソースを追加する (.NET Framework)

Visual Studio で .NET データ ツールを使用する場合は、データ ソース (.NET オブジェクト) を追加して、.NET アプリケーションをデータ ストア内の情報に接続します。 Visual Studio デザイナーでは、データ ソース出力を使用して、[データ ソース] ウィンドウからデータベース オブジェクトをドラッグ アンド ドロップしたときにデータをフォームにバインドする定型コードを生成できます。

データ ソースの例を次に示します。

  • なんらかのデータベースに関連付けられている Entity Framework モデルのクラス。

  • なんらかのデータベースに関連付けられているデータセット。

  • Windows Communication Foundation (WCF) Data Service や REST サービスなどのネットワーク サービスを表すクラス。

  • SharePoint サービスを表すクラス。

  • ソリューション内のクラスまたはコレクション

Note

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

前提条件

  • .NET Framework を対象とする Windows フォームまたは Windows Presentation Format (WPF) オブジェクトを実装するアプリケーション。 インストールに .NET Desktop development ワークロードを含める際に、Visual Studio でテンプレートを使用するとアプリケーションの種類を作成できます。 詳しくは、「Visual Studio のワークロード、コンポーネント、および言語パックを変更する」をご覧ください。

    重要

    この記事で説明する機能は、WPF または Windows フォームの .NET Core 開発ではサポートされていません。

  • アプリケーションでは、データセット、Entity Framework、Language Integrated Query (LINQ) to SQL、WCF Data Service、または SharePoint などのデータ バインディング機能を使用する必要があります。

    ヒント

    アプリケーションでこれらのコンポーネントが 1 つ以上使用されていない場合、「データ ソース」の概念は適用されません。 これらのシナリオでは、SqlCommand クラス オブジェクトを使用してデータベースに直接接続できます。

データ ソースと Windows フォームを操作する

Windows Forms または WPF の [データ ソース構成] Wizard を使用すると、.NET Framework 向けのデータ ソースを作成、・編集できます。 データ ソースは、データベース、サービス、オブジェクト、または SharePoint リストから作成できます。

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

データ ソースを作成すると、データ ソースは、[データ ソース] ウィンドウに表示されます。 Visual Studio でプロジェクトを開いている場合は、[ビュー]>[その他の Windows]>[データ ソース] の順に選択するとこのウィンドウにアクセスできます。 Shift+Alt+D のキーボード ショートカットも使用できます。

(.NET Core または .NET 5 以降ではなく) .NET Framework を対象とする Windows Forms プロジェクトでは、[データ ソース] ウィンドウから Windows フォーム デザイン サーフェイスまたはコントロールにデータ ソースをドラッグできます。 データ ソースをフォームに接続する方法の例を次に示します。

  • テーブルをドラッグすると、そのテーブルの BindingNavigatorDataGridView が表示されます。

  • 特定の列をドラッグして、列の LabelTextBox を使用して BindingNavigator を取得します。

  • すべてのテーブル列をドラッグして、テーブルの完全なデータ表示フォームを取得します。

この操作を行うと Visual Studio は、データ ストアのデータを表示する定型コードを生成します。 次の例は、Windows フォームにドロップされたデータセットを示しています。 アプリケーションで F5 キーを押すと、基になるデータベースのデータがフォームのコントロールに表示されます。

Visual Studio 2022 でデータセットを Windows フォームにドラッグする方法を示すスクリーンショット。

Visual Studio 2019 以前でデータセットを Windows フォームにドラッグする方法を示すスクリーンショット。

データベースまたはデータベース ファイルからデータ ソースを作成する

[データ ソース構成] ウィザード でデータベースまたはデータベース ファイルのデータ ソースとして使用するデータセットまたは Entity Framework モデルを作成できます。 構成で Entity Framework を使用する場合は、最初に Entity クラスを作成してからウィザードを使用してデータ ソースを作成します。

データセットをデータ ソースとして作成する

[データ ソース構成] ウィザードでは、データベースを接続してデータ ソースを作成するオプションがあります。 アプリケーションのデータセットとして使用するデータベース オブジェクトを選択できます。

データセットをデータ ソースとして作成するには、次の手順を実行します。

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

  2. データ ソースの種類として、[データベース] を選択します。

  3. データベース モデルの場合は、[データセット] を選択します。

  4. プロンプトに従って、新規または既存のデータベース接続、またはデータベース・ファイルを指定します。

  5. データセットに含めるデータベース オブジェクトを選択し、ウィザードを完了します。

ウィザードを完了する詳細な手順については、「Visual Studio を使用して .NET Framework でデータセットを作成および構成する」を参照してください。

Entity Framework モデルをデータ ソースとして作成する

構成で Entity Framework を使用する場合は、最初に Entity クラスを作成してから、[データ ソース構成] ウィザード を使用してデータ ソースを作成します。

[エンティティ データ モデル] ウィザードを使用して、データ ソースとして Entity Framework モデルを作成するには、次の手順を実行します。

  1. [プロジェクト]>[新規項目を追加] の順に選択します。 [新しい項目の追加] ダイアログが開きます。

  2. ダイアログで、ADO.NET Entity Data Model テンプレートを選択し、モデル インスタンスの名前を入力したら、[追加] を選択します。

    [新規項目の追加] ダイアログを使用して新しい ADO.NET エンティティ データ モデルを作成する方法を示すスクリーンショット。

    Entity Data Model ウィザードが開きます。

  3. ウィザードで、Entity Framework モデルを生成する方法を選択します。

    • データベースからの EF デザイナー: 既存のデータベースに基づいて Entity Framework Designer にモデルを作成します。 データベース接続、モデルの設定、およびモデルに含めるデータベース オブジェクトを選択できます。 アプリケーションが対話するクラスは、モデルから生成されます。

    • 空の EF デザイナー モデル: モデルを視覚的に設計するための開始点として、Entity Framework Designer に空のモデルを作成します。 後で、モデルからデータベースを生成できます。 アプリケーションが対話するクラスは、モデルから生成されます。

    • 空の Code First モデル: コードを使用してモデルを設計するための開始点として、空の Code First モデルを作成します。 後で、モデルからデータベースを生成できます。

    • データベースからの Code First: 既存のデータベースに基づいて Code First モデルを作成します。 データベース接続、モデルの設定、およびモデルに含めるデータベース オブジェクトを選択できます。

    [エンティティ データ モデル] ウィザードの新しいモデルを生成するためのオプションを示すスクリーンショット。

    選択したら、ウィザードで [次へ] を選択して、続行します。

  4. アプリケーションのデータ ソースとしてモデルを追加し、ウィザードを完了します。

    ウィザードを完了する詳細な手順については、「Entity Framework (C#) を使用してモデル クラスを作成する」を参照してください。

  5. モデルのクラスを生成したら、[データ ソース構成] ウィザードを使用してオブジェクトからデータ ソースを作成できます。

    • データセットで使用するテーブル (または個々の列)、ストアド プロシージャ、関数、モデルからのビューを選択します。

      [データ ソース構成] ウィザードでモデルに対して生成された Entity クラスを示すスクリーンショット。

    詳細な手順については、「オブジェクトからデータ ソースを作成する」を参照してください。

サービスからデータ ソースを作成する

[データ ソース構成] ウィザードは、サービスからのデータ ソース作成をサポートします。 この方法では、Visual Studio によってプロジェクトにサービス参照が追加され、サービスによって返されるオブジェクトに対応するプロキシ オブジェクトが作成されます。 サービスがデータセットを返すと、サービスはプロジェクト内でデータセットとして表されます。 サービスが特定の型を返す場合、サービスはプロジェクト内で返された型として表されます。

次の種類のサービスからデータ ソースを作成できます。

Note

[データ ソース] ウィンドウの項目は、サービスが返したデータとは異なります。 サービスによっては、データ ソース構成ウィザードでバインドできるオブジェクトを作成するための十分な情報を提供しないものもあります。 ウィザードを完了し、サービスが型指定されていなデータセットを返す場合、[データ ソース] ウィンドウには項目は表示されません。 型指定されていないデータセットは、スキーマが提供されないので、ウィザードは、データ ソースを作成するために十分な情報を取得できません。

サービスからデータ ソースを作成するには次の手順を実行します。

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

  2. データ ソースの種類として、[サービス] を選択します。

    [サービス参照を追加] ダイアログが開きます。 ソリューション エクスプローラーでプロジェクトを右クリックしてこのダイアログにアクセスしても、[サービス参照を追加] を選択できます。

ウィザードを完了する詳細な手順については、「Visual Studio を使用して .NET Framework でデータセットを作成および構成する」を参照してください。

オブジェクトからデータ ソースを作成する

[データ ソース構成] ウィザードを使用しても 1 つ以上のパブリック プロパティを公開する任意オブジェクトからデータ ソースを作成できます。

すべてのパブリック プロパティが、[データ ソース] ウィンドウで表示されます。 生成されたモデルがある Entity Framework を使用している場合、このウィンドウには、アプリケーション用データ ソースであるエンティティ クラスが表示されます。

Note

ドラッグ アンド ドロップ データ バインディングをサポートするには、ITypedList または IListSource インターフェイスを実装するオブジェクトに既定のコンストラクターが必要です。 これがない場合、Visual Studio はデータ ソース オブジェクトをインスタンス化できないので、デザイン サーフェイスに項目をドラッグするとエラーが表示されます。

オブジェクトからデータ ソースを作成するには次の手順を実行します。

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

  2. データ ソースの種類として、[オブジェクト] を選択します。

  3. [データ オブジェクトの選択] ページで、ツリー ビューのノードを展開して、バインド先のオブジェクトを見つけます。

    ツリー ビューには、プロジェクトのノードと、プロジェクトによって参照されるアセンブリおよび他のプロジェクトのノードが含まれています。

    1. ツリー ビューに表示されないアセンブリまたはプロジェクト内のオブジェクトにバインドするには、[参照を追加] を選択します。

    2. [参照マネージャー] ダイアログを使用して、アッセンブリまたはプロジェクトに参照を追加します。 参照を追加すると、Visual Studio は、アセンブリかプロジェクトをツリー ビューに追加します。

    Note

    オブジェクトがツリー ビューに表示される前に、オブジェクトを含むプロジェクトをビルドすることが必要な場合があります。

ウィザードを完了する詳細な手順については、「Visual Studio を使用して .NET Framework でデータセットを作成および構成する」を参照してください。

SharePoint リストからデータ ソースを作成する

[データ ソース構成] ウィザード を使用しても、SharePoint リストからデータ ソースを作成できます。 SharePoint では、WCF Data Services を介してデータを公開します。そのため、SharePoint データ ソースの作成は、サービスからのデータ ソースの作成と同じです。

Note

この方法には、SharePoint SDK が必要です。

SharePoint リストからデータ ソースを作成するには、次の手順を実行します。

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

  2. データ ソースの種類として、[SharePoint] を選択します。

  3. [サービス参照を追加] ダイアログを使用して、SharePoint サーバーを指すと、SharePoint Data Service に接続できます。

ウィザードを完了する詳細な手順については、「Visual Studio を使用して .NET Framework でデータセットを作成および構成する」を参照してください。