Resultsets im Vergleich zu Datasets (Geräte)
Aktualisiert: November 2007
Der Visual StudioAssistent zum Konfigurieren von Datenquellen kann Datenquellcode in Geräteprojekten generieren, die auf DataSet oder System.Data.SqlServerCe.SqlCeResultSet basieren. Der generierte Code stellt eine Datenquelle im Geräteprojekt dar. Er kann an Benutzeroberflächen-Steuerelemente gebunden werden und Daten mit einer SQL Server Compact 3.5-Datenbank austauschen. SqlCeResultSet-basierter Code wird jedoch schneller ausgeführt, benötigt weniger Arbeitsspeicher und ist weniger ausführlich als DataSet- basierter Code. Dies liegt daran, dass SqlCeResultSet einen Zeiger verwendet, um direkt mit der Datenbank zu arbeiten, während DataSet eine Kopie der Datenbankdaten in der Geräteanwendung speichert. In diesem Thema werden sowohl SqlCeResultSet- als auch DataSet-basierte Datenquellen beschrieben.
Hinweis: |
---|
Visual Studio generiert standardmäßig DataSet-basierten Code, wenn Sie den Datenquellen-Assistenten zum Erstellen einer neuen Datenquelle verwenden. Um eine oder beide dieser Klassen zu generieren, informieren Sie sich unter Gewusst wie: Generieren von SqlCeResultSet-Code (Geräte). |
Im folgenden Diagramm werden die architektonischen Unterschiede zwischen SqlCeResultSets und DataSets veranschaulicht.
ResultSets
Wenn der Assistent zum Konfigurieren von Datenquellen eine SqlCeResultSet-basierte Datenquelle generiert, erstellt er eine Klasse, die von SqlCeResultSet erbt. Im Unterschied zu DataSet-basierten Datenquellen speichern SqlCeResultSet-basierte Datenquellen keine Daten. Stattdessen stellt SqlCeResultSet einen Zeiger auf die Datenbank zur Verfügung und liest und aktualisiert die Datenbankdaten ohne einen TableAdapter. Der direkte Zugriff auf die Datenbank ist möglich, da SqlCeResultSet Bestandteil von .NET Compact Framework-Datenanbieter für SQL Server Compact 3.5 (in früheren Versionen als SQL Server Mobile bezeichnet) ist. Weitere Informationen finden Sie unter Generieren von typisierten Resultsets.
SqlCeResultSet-basierte Datenquellen erfordern insgesamt weniger Arbeitsspeicher und bieten höhere Leistung, dies jedoch mit weniger Features als DataSet-basierte Datenquellen.
DataSets
Wenn der Assistent zum Konfigurieren von Datenquellen eine DataSet-basierte Datenquelle generiert, erstellt er Klassen zur Darstellung der Daten sowie eine TableAdapter-Klasse zum Austausch von Daten zwischen Anwendung und Datenbank. Die Klassen, die die Daten darstellen, erben von DataSet, Microsoft.Office.Interop.Excel.DataTable und DataRow und nehmen die Daten aus der Datenbank auf. Der Datenquellen-Assistent generiert folgende Elemente, um die relationale Struktur und die Einschränkungen der Datenbank zu spiegeln:
Eine von DataSet abgeleitete Klasse, die eine Datatable für jede Tabelle enthält, die im Assistenten zum Hinzufügen von Datenquellen ausgewählt wurde. Weitere Informationen finden Sie unter Typisierte 'DataSets' (ADO.NET).
Jede von DataTable abgeleitete Klasse enthält außerdem eine Gruppe von DataColumn-Objekten, die die Datenbankspalten spiegeln.
Eine von DataRow abgeleitete Klasse für jede Tabelle.
Relationale Einschränkungen der Datenbank, z. B. non-null, unique, primary-key und foreign-key.
Eine TableAdapter-Klasse zum Austausch von Daten zwischen der Datenbank und Datenobjekten in der Geräteanwendung. Die TableAdapter-Klasse enthält Methoden zum Lesen von Daten aus einer Datenbank und zum Zurückschreiben geänderter Daten in die Datenbank. Weitere Informationen finden Sie unter Übersicht über TableAdapters.
Die oben in diesem Thema beschriebenen Klassen sind mit der ADO.NET-Architektur kompatibel. Folglich ähnelt das Datenzugriffsmodell ADO.NET-Daten, die .NET Framework auf dem Desktop verwenden. Weitere Informationen finden Sie unter Zugreifen auf Daten (Visual Studio) und Datenzugriff und XML-Unterstützung in .NET Compact Framework.
DataSet-basierte Datenquellen bieten allgemein mehr Features, erfordern jedoch auch mehr Arbeitsspeicher und Prozessorressourcen als SqlCeResultSet-basierte Datenquellen.
Siehe auch
Aufgaben
Gewusst wie: Generieren von SqlCeResultSet-Code (Geräte)
Konzepte
Empfehlungen zur Zugriffsstrategie auf Daten