ADO.NET データセット

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

ADO.Net graphic
DataSet オブジェクト モデル

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

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

DataTableCollection

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

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

DataView クラス

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

DataRelationCollection

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

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

詳しくは、「DataRelation の追加」をご覧ください。

XML

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

ExtendedProperties

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

LINQ to DataSet

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

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

関連項目