注
DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。
DataSet オブジェクトは、基本的にミニ データベースであるメモリ内オブジェクトです。 これには DataTable、 DataColumn、および DataRow オブジェクトが含まれており、1 つ以上のデータベースのデータを格納および変更できます。開いている接続を維持する必要はありません。 データセットはデータの変更に関する情報を保持するため、アプリケーションが再接続されたときに更新を追跡してデータベースに送り返すことができます。
データセットと関連クラスは、.NET API の System.Data 名前空間で定義されます。 ADO.NET を使用して、コード内でデータセットを動的に作成および変更できます。 このセクションのドキュメントでは、Visual Studio デザイナーを使用してデータセットを操作する方法を示します。 デザイナーによって作成されたデータセットでは、 TableAdapter オブジェクトを使用してデータベースを操作します。 プログラムによって作成されたデータセットでは 、DataAdapter オブジェクトが 使用されます。 プログラムによるデータセットの作成の詳細については、 DataAdapters と DataReader を参照してください。
アプリケーションがデータベースからデータを読み取るだけで、更新、追加、または削除を実行しない必要がある場合は、通常、 DataReader オブジェクトを使用して汎用の List オブジェクトまたは別のコレクション オブジェクトにデータを取得することで、パフォーマンスを向上させることができます。 データを表示する場合は、ユーザー インターフェイスをコレクションにデータバインドできます。
データセット ワークフロー
Visual Studio には、データセットの操作を簡略化するためのツールが用意されています。 基本的なエンドツーエンドのワークフローは次のとおりです。
[データ ソース] ウィンドウを使用して、1 つ以上のデータ ソースから新しいデータセットを作成します。 データセット デザイナーを使用してデータセットを構成し、そのプロパティを設定します。 たとえば、含めるデータ ソースのテーブルと、各テーブルの列を指定する必要があります。 慎重に選択して、データセットに必要なメモリの量を節約します。 詳細については、データセットの作成と構成に関するページを参照してください。
外部キーが正しく処理されるように、テーブル間のリレーションシップを指定します。 詳細については、「TableAdapters を使用してデータセットを入力する」を参照してください。
TableAdapter 構成ウィザードを使用して、データセットを設定するクエリまたはストアド プロシージャ、および実装するデータベース操作 (更新、削除など) を指定します。 詳細については、次のトピックを参照してください。
データセット内のデータに対してクエリを実行して検索します。 詳細については、「 クエリ データセット」を参照してください。 LINQ to DataSet を使用すると、 オブジェクト内のデータに対して LINQ (言語統合クエリ) を使用できます。 詳細については、「 LINQ to DataSet」を参照してください。
[ データ ソース] ウィンドウを使用して、データセットまたはその個々の列にユーザー インターフェイス コントロールをバインドし、ユーザーが編集可能な列を指定します。 詳細については、「 Visual Studio でコントロールをデータにバインドする」を参照してください。
データセットと N 層アーキテクチャ
N 層アプリケーションのデータセットの詳細については、「n 層アプリケーション でのデータセットの操作」を参照してください。
データセットと XML
XML との間でのデータセットの変換の詳細については、「 XML データをデータセットに読み取る 」および「 データセットを XML として保存する」を参照してください。