Das ADO.NET-DataSet
Das DataSet-Objekt ist für die Unterstützung von nicht verbundenen, verteilten Datenszenarien mit ADO.NET unabdingbar. Das DataSet ist eine speicherresidente Darstellung von Daten, das ein konsistentes relationales Programmierungsmodell ungeachtet der Datenquelle bereitstellt. Es kann mit mehreren und unterschiedlichen Datenquellen, mit XML-Daten oder zur Verwaltung lokaler Anwendungsdaten verwendet werden. Das DataSet stellt einen vollständigen Satz von Daten dar, einschließlich verknüpfter Tabellen, Einschränkungen und Beziehungen zwischen den Tabellen. In der folgenden Abbildung wird das DataSet-Objektmodell dargestellt.
DataSet-Objektmodell
Die Methoden und Objekte in einem DataSet sind mit denen des relationalen Datenbankmodells konsistent.
Das DataSet kann seinen Inhalt auch als XML und sein Schema als XSD-Schema (XML Schema Definition Language) beibehalten und neu laden.
DataTableCollection
Ein ADO.NET-DataSet enthält eine Auflistung von null oder mehreren Tabellen, die von DataTable-Objekten dargestellt werden. DataTableCollection enthält alle DataTable-Objekte in einem DataSet.
Eine DataTable wird im System.Data-Namespace definiert und stellt eine einzelne Tabelle von speicherresidenten Daten dar. Sie enthält eine Auflistung von Spalten, die von einer DataColumnCollection dargestellt werden, und Einschränkungen, die von einer ConstraintCollection dargestellt werden. Beide zusammen definieren das Schema der Tabelle. Eine DataTable enthält außerdem eine Auflistung von Zeilen, die von DataRowCollection dargestellt werden und die Daten in der Tabelle enthalten. Eine DataRow behält nicht nur den aktuellen Status, sondern auch die aktuelle und Ausgangsversion bei, um Änderungen an den in der Zeile gespeicherten Werten zu identifizieren.
DataRelationCollection
Ein DataSet enthält Beziehungen im DataRelationCollection-Objekt. Eine Beziehung, dargestellt durch das DataRelation-Objekt, verknüpft Zeilen in einer DataTable mit Zeilen in einer anderen DataTable. Dies ist analog zu einem Verknüpfungspfad, der u. U. zwischen Primärschlüssel- und Fremdschlüsselspalten in einer relationalen Datenbank vorhanden ist. Eine DataRelation identifiziert übereinstimmende Spalten in zwei Tabellen eines DataSets.
Beziehungen ermöglichen die Navigation von einer Tabelle zur anderen innerhalb eines DataSets. Die wesentlichen Elemente einer DataRelation sind der Name der Beziehung, die Namen der Tabellen, für die eine Beziehung erstellt wird, sowie die verwandten Spalten in jeder Tabelle. Beziehungen können mit mehr als einer Spalte pro Tabelle erstellt werden, indem Sie ein Array von DataColumn-Objekten als Schlüsselspalte angeben. Wenn DataRelationCollection eine Beziehung hinzugefügt wird, werden u. U. UniqueKeyConstraint und ForeignKeyConstraint optional hinzugefügt, um Integritätseinschränkungen zu erzwingen, wenn Änderungen an verknüpften Spaltenwerten vorgenommen werden.
ExtendedProperties
Das DataSet (sowie die DataTable und DataColumn) verfügt über eine ExtendedProperties-Eigenschaft. ExtendedProperties ist eine PropertyCollection, in die Sie benutzerdefinierte Informationen stellen können, wie die SELECT-Anweisung, die zum Generieren des Resultsets verwendet wurde, oder Datum/Uhrzeit, um anzugeben, wann die Daten generiert wurden. Die ExtendedProperties-Auflistung wird mit den Schemainformationen für das DataSet (sowie die DataTable und DataColumn) beibehalten.
Siehe auch
Übersicht über ADO.NET | ADO.NET-Architektur | DataColumn-Klasse | DataColumnCollection-Klasse | DataRelation-Klasse | DataRelationCollection-Klasse | DataRowCollection-Klasse | DataSet-Klasse | DataTable-Klasse | DataTableCollection-Klasse | PropertyCollection-Klasse