ADO.NET の DataSet

DataSet オブジェクトは、ADO.NET で非接続型分散データ シナリオをサポートするうえで中心的な役割を果たします。 DataSet はメモリ内に常駐するデータ表現であり、データ ソースの違いにかかわらず、一貫性のあるリレーショナル プログラミング モデルを提供します。 複数の異なるデータ ソースや XML データと組み合わせて使用でき、アプリケーションにとってローカルなデータの管理にも使用できます。 DataSet は関連テーブル、制約、およびテーブル間のリレーションシップを含む、完全なデータ セットを表現します。 次の図に示すのが DataSet オブジェクト モデルです。

DataSet オブジェクト モデル

ADO.Net グラフィック

1 つの DataSet に含まれるメソッドとオブジェクトは、リレーショナル データベース モデルに含まれるメソッドやオブジェクトと整合性があります。

DataSet は、その内容を XML として永続化して再読み込みしたり、そのスキーマを XML スキーマ定義言語 (XSD) スキーマとして永続化して再読み込みしたりできます。 詳細については、「DataSet での XML の使用 (ADO.NET)」を参照してください。

DataTableCollection

ADO.NET の DataSet には、DataTable オブジェクトによって表現される 0 個以上のテーブルのコレクションが含まれます。 DataTableCollection には、1 つの DataSet に属するすべての DataTable オブジェクトが含まれています。

DataTableSystem.Data 名前空間で定義され、メモリ常駐データの 1 つのテーブルを表現します。 このテーブルには、共にテーブルのスキーマを定義する DataColumnCollection で表現される列と ConstraintCollection で表現される制約のコレクションが含まれます。 DataTable には、テーブル内のデータが格納された DataRowCollection で表現される行のコレクションも含まれます。 DataRow には、行に格納された値の変更を識別できるように、行の現在の状態と共に、行の現在のバージョンと元のバージョンの両方が保持されます。

DataView クラス

DataView では、DataTable に格納されているデータのさまざまなビューを作成できます。この機能は、データ連結アプリケーションで頻繁に使用されます。 DataView を使用すると、テーブルのデータをさまざまな並べ替え順序で公開したり、行の状態やフィルター式に基づいてデータをフィルター処理したりできます。 詳細については、「DataView (ADO.NET)」を参照してください。

DataRelationCollection

DataSetDataRelationCollection オブジェクトにはリレーションシップが含まれます。 DataRelation オブジェクトで表現されるリレーションシップは、ある DataTable の行を別の DataTable の行に関連付けます。 リレーションシップは、リレーショナル データベースの主キー列と外部キー列の間に存在する結合パスに似ています。 DataRelation は、1 つの DataSet が含む 2 つのテーブルの間で、一致する列を識別します。

リレーションシップを使用すると、DataSet 内の、あるテーブルと別のテーブルを行き来できます。 DataRelation で必須とされる要素は、リレーションシップの名前、関連付けるテーブルの名前、および各テーブル内で関連付けられる列です。 DataColumn オブジェクトの配列をキー列として指定することによって、テーブルごとに複数の列を使用してリレーションシップを構築できます。 DataRelationCollection にリレーションシップを追加するときは、関連列の値が変更されたときに整合性制約を適用するために、オプションで UniqueKeyConstraint および ForeignKeyConstraint を追加できます。

詳細については、「DataRelation の追加 (ADO.NET)」を参照してください。

XML

XML ストリームまたは XML ドキュメントから DataSet にデータを入力できます。 XML ストリームまたは XML ドキュメントを使用して DataSet に入力できるのは、データまたはスキーマ情報のいずれか、あるいはその両方です。 XML ストリームまたは XML ドキュメントから提供される情報を DataSet の既存のデータまたはスキーマ情報と組み合わせることもできます。 詳細については、「DataSet での XML の使用 (ADO.NET)」を参照してください。

ExtendedProperties

DataSetDataTable、および DataColumn には、すべて ExtendedProperties プロパティがあります。 ExtendedPropertiesPropertyCollection であり、ここには、結果セットの生成に使われた SELECT ステートメントやデータが生成された時刻など、独自の情報を格納できます。 ExtendedProperties コレクションは、DataSet のスキーマ情報と共に永続化されます。

LINQ to DataSet

LINQ to DataSet は、DataSet に格納された非接続型データに対する統合言語クエリ機能を提供します。 LINQ to DataSet には標準の LINQ 構文が採用されているため、Visual Studio IDE 使用時に IntelliSense がサポートされ、コンパイル時の構文チェックおよび静的な型指定が実行可能です。

詳細については、「LINQ to DataSet」を参照してください。

参照

その他の技術情報

ADO.NET の概要

DataSets、DataTables、および DataViews (ADO.NET)

ADO.NET でのデータの取得および変更