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

Note

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

注意

この記事で説明する機能は、.NET Framework Windows フォームおよび WPF 開発に適用されます。 これらの機能は、WPF と Windows フォームのどちらについても、.NET Core 開発ではサポートされていません。

Visual Studio の .NET データ ツールのコンテキストでは、"データ ソース" という用語は、データ ストアに接続し、データを .NET アプリケーションで使用できるようにする .NET オブジェクトを指します。 Visual Studio デザイナーでは、データ ソースの出力を使用して、 [データ ソース] ウィンドウからデータベース オブジェクトをドラッグ アンド ドロップしたときにデータをフォームにバインドする定型コードを生成できます。 この種のデータ ソースとして、次のものを使用できます。

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

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

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

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

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

Note

データ バインディング機能、データセット、Entity Framework、LINQ to SQL、WCF、または SharePoint を使用していない場合、"データ ソース" の概念は適用されません。 SQLCommand オブジェクトを使用してデータベースに直接接続し、データベースと直接通信するだけです。

データ ソースは、Windows フォームまたは Windows Presentation Foundation アプリケーションでデータ ソース構成ウィザードを使用して作成および編集します。 Entity Framework の場合、まずエンティティ クラスを作成し、 [プロジェクト]>[新しいデータ ソースの追加] の順に選択して、このウィザードを開始します (詳細については、この記事で後述します)。

データ ソース構成ウィザード

[データ ソース] ウィンドウ

データ ソースを作成すると、 [データ ソース] ツール ウィンドウに表示されます。

ヒント

[データ ソース] ウィンドウを開くには、自分のプロジェクトが開いていることを確認し、Shift+Alt+D キーを押すか、 [表示]>[その他のウィンドウ]>[データ ソース] の順に選択します。

(.NET Core または .NET 5 以降ではなく) .NET Framework を対象とする Windows フォーム プロジェクトでは、 [データ ソース] ウィンドウからフォーム デザイン サーフェイスまたはコントロールにデータ ソースをドラッグできます。 テーブルをドラッグすると、そのテーブルの BindingNavigatorDataGridView が表示されます。 個々の列をドラッグすると、その列の BindingNavigator、LabelTextBox が表示されます。 列をドラッグして、テーブルの完全なデータ表示フォームを取得します。 この操作を行うと、データ ストアのデータを表示する定型コードが生成されます。

次の図は、Windows フォームにドロップされたデータセットを示しています。 アプリケーションで F5 キーを押すと、基になるデータベースのデータがフォームのコントロールに表示されます。

データ ソースのドラッグ操作を示すスクリーンショット。

データ ソースのドラッグ操作を示すスクリーンショット。

データベースまたはデータベース ファイルのデータ ソース

データベースまたはデータベース ファイルのデータ ソースとして使用するデータセットまたは Entity Framework モデルを作成できます。

データセット

データセットをデータ ソースとして作成するには、 [プロジェクト]>[新しいデータ ソースの追加] の順に選択して、データ ソース構成ウィザードを実行します。 データ ソースの種類として [データベース] を選択し、プロンプトに従って、新規または既存のデータベース接続、あるいはデータベース ファイルを指定します。

エンティティ クラス

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

  1. Entity Data Model ウィザードを実行して、エンティティ クラスを作成します。 [プロジェクト]>[新しい項目の追加]>[ADO.NET Entity Data Model] の順に選択します。

    新しい Entity Framework モデル プロジェクト項目

  2. モデルを生成する方法を選択します。

    エンティティ データ モデル ウィザード

  3. モデルをデータ ソースとして追加します。 [オブジェクト] カテゴリを選択すると、生成されたクラスがデータ ソース構成ウィザードに表示されます。

    エンティティ クラスが表示されたデータ ソース構成ウィザード

サービスのデータ ソース

サービスからデータ ソースを作成するには、データ ソース構成ウィザードを実行し、データ ソースの種類として [サービス] を選択します。 この操作は、 [サービス参照の追加] ダイアログ ボックスへのショートカットです。これには、ソリューション エクスプローラーでプロジェクトを右クリックして [サービス参照の追加] を選択することで、アクセスすることもできます。

サービスからデータ ソースを作成すると、Visual Studio によりサービス参照がプロジェクトに追加されます。 また、サービスから返されるオブジェクトに対応するプロキシ オブジェクトも作成されます。 たとえば、データセットを返すサービスは、プロジェクト内でデータセットとして表現され、特定の型を返すサービスは、プロジェクト内で、返される型として表現されます。

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

  • WCF Data Services

  • WCF サービス

  • Web サービス

    Note

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

オブジェクトのデータ ソース

1 つ以上のパブリック プロパティを公開する任意のオブジェクトからデータ ソースを作成できます。それには、データ ソース構成ウィザードを実行し、データ ソースの種類として [オブジェクト] を選択します。 オブジェクトのすべてのパブリック プロパティは、[データ ソース] ウィンドウに表示されます。 Entity Framework を使用しており、モデルが生成されている場合、ここには、自分のアプリケーションのデータ ソースであるエンティティ クラスが表示されます。

[データ オブジェクトの選択] ページで、ツリー ビューのノードを展開して、バインド先のオブジェクトを見つけます。 ツリー ビューには、プロジェクトのノードと、プロジェクトによって参照されるアセンブリおよび他のプロジェクトのノードが含まれています。

ツリー ビューに表示されていないアセンブリまたはプロジェクトのオブジェクトにバインドする場合は、[参照の追加] をクリックし、[参照の追加] ダイアログ ボックスを使用して、アセンブリまたはプロジェクトへの参照を追加します。 参照を追加すると、そのアセンブリまたはプロジェクトがツリー ビューに追加されます。

Note

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

Note

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

SharePoint リストのデータ ソース

データ ソース構成ウィザードを実行し、データ ソースの種類として [SharePoint] を選択すると、SharePoint リストからデータ ソースを作成できます。 SharePoint では、WCF Data Services を介してデータを公開します。そのため、SharePoint データ ソースの作成は、サービスからのデータ ソースの作成と同じです。 データ ソース構成ウィザード[SharePoint] 項目をクリックすると、[サービス参照の追加] ダイアログ ボックスが表示されます。このダイアログ ボックスで、SharePoint Server を指定することにより SharePoint データ サービスに接続します。 この操作には SharePoint SDK が必要です。