この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。
DataSet クラスは、データ ソースから取得されたデータのメモリ内キャッシュであり、ADO.NET アーキテクチャの主要なコンポーネントです。 DataSetは、DataRelation オブジェクトと相互に関連付けることができるDataTable オブジェクトのコレクションで構成されます。 UniqueConstraintオブジェクトとForeignKeyConstraint オブジェクトを使用して、DataSetのデータ整合性を適用することもできます。 DataSet オブジェクトの操作の詳細については、「DataSets、DataTables、DataViews」を参照してください。
オブジェクト DataTable データが含まれているのに対し、 DataRelationCollection ではテーブル階層を移動できます。 テーブルは、DataTableCollection に含まれており、Tables プロパティを介してアクセスされます。 DataTableオブジェクトにアクセスするときは、条件付きで大文字と小文字が区別されることに注意してください。 たとえば、1 つの DataTable の名前が "mydatatable" で、もう 1 つが "Mydatatable" という名前の場合、どちらかのテーブルを検索するために使用された文字列は、大文字と小文字が区別されます。 ただし、"mydatatable" が存在し、"Mydatatable" が存在しない場合、検索文字列は大文字と小文字を区別しないとみなされます。 DataTable オブジェクトの操作の詳細については、「DataTable の作成」を参照してください。
DataSetは、XML ドキュメントとしてデータとスキーマを読み書きできます。 その後、データとスキーマを HTTP 経由で転送し、XML 対応の任意のプラットフォーム上の任意のアプリケーションで使用できます。 スキーマは、 WriteXmlSchema メソッドを使用して XML スキーマとして保存でき、スキーマとデータの両方を WriteXml メソッドを使用して保存できます。 スキーマとデータの両方を含む XML ドキュメントを読み取る場合は、 ReadXml メソッドを使用します。
一般的な多層実装では、 DataSetを作成して更新し、元のデータを更新する手順は次のとおりです。
DataAdapterを使用して、DataSet内の各DataTableを作成し、データ ソースのデータを入力します。
個々の DataTable オブジェクト内のデータを、DataRow オブジェクトを追加、更新、または削除して変更します。
GetChanges メソッドを呼び出して、データの変更のみを特徴とする 2 つ目のDataSetを作成します。
DataAdapterのUpdate メソッドを呼び出し、2 番目のDataSetを引数として渡します。
DataSetでAcceptChangesを呼び出します。 または、 RejectChanges を呼び出して変更を取り消します。
注
DataSetオブジェクトとDataTable オブジェクトはMarshalByValueComponentから継承され、リモート処理用のISerializable インターフェイスがサポートされます。 これらは、リモートで使用できる唯一の ADO.NET オブジェクトです。
注
DataSet から継承されたクラスは、ガベージ コレクターによりファイナライズされません。ファイナライザーが DataSet抑制されているためです。 派生クラスは、コンストラクターで ReRegisterForFinalize メソッドを呼び出して、ガベージ コレクターによってクラスを終了させることができます。
セキュリティに関する考慮事項
DataSet と DataTable のセキュリティの詳細については、 セキュリティ ガイダンスを参照してください。
.NET