Freigeben über


Kopieren von DataSet-Inhalten

Sie können eine Kopie eines DataSets erstellen, so dass Sie ohne Auswirkungen auf die Originaldaten mit Daten arbeiten oder einen Teil der Daten aus einem DataSet verwenden können. Beim Kopieren eines DataSets stehen folgende Möglichkeiten zur Verfügung:

  • Sie können eine exakte Kopie des DataSets erstellen, einschließlich Schema, Daten, Informationen zum Zeilenstatus und Zeilenversionen.
  • Sie können ein DataSet erstellen, das das Schema eines bestehenden DataSets sowie die geänderten Zeilen enthält. Sie können alle geänderten Zeilen zurückgeben oder einen bestimmten DataRowState angeben. Weitere Informationen zum Zeilenstatus finden Sie unter Zeilenstatus und Zeilenversion.
  • Sie können nur das Schema oder die relationale Struktur des DataSets ohne die darin enthaltenen Zeilen kopieren. Zeilen können mit ImportRow in eine vorhandene DataTable importiert werden.

Verwenden Sie die Copy-Methode des DataSets zum Erstellen einer exakten Kopie des DataSets, die sowohl das Schema als auch die Daten enthält. Das folgende Codebeispiel veranschaulicht die Erstellung einer exakten Kopie des DataSets.

Dim copyDS As DataSet = custDS.Copy()
[C#]
DataSet copyDS = custDS.Copy();

Verwenden Sie die GetChanges-Methode des DataSets, um eine Kopie eines DataSets zu erstellen, die das Schema und nur die Daten enthält, die Added-Zeilen, Modified-Zeilen oder Deleted-Zeilen darstellen. Mit der GetChanges-Methode haben Sie außerdem die Möglichkeit, nur Zeilen mit einem bestimmten Zeilenstatus zurückzugeben, indem beim Aufrufen von GetChanges ein DataRowState-Wert übergeben wird. Das folgende Codebeispiel veranschaulicht die Übergabe eines DataRowState beim Aufrufen von GetChanges.

' Copy all changes.
Dim changeDS As DataSet = custDS.GetChanges()
' Copy only new rows.
Dim addedDS As DataSet = custDS.GetChanges(DataRowState.Added)
[C#]
// Copy all changes.
DataSet changeDS = custDS.GetChanges();
// Copy only new rows.
DataSet addedDS = custDS.GetChanges(DataRowState.Added);

Verwenden Sie die Clone-Methode des DataSets zum Erstellen einer Kopie eines DataSets, die nur ein Schema enthält. Mit der ImportRow-Methode von DataTable können Sie auch bestehende Zeilen zum geklonten DataSet hinzufügen. Die ImportRow-Methode fügt Daten, den Zeilenstatus sowie Versionsinformationen zur angegebenen Tabelle hinzu. Spaltenwerte werden nur hinzugefügt, wenn der Spaltenname übereinstimmt und der Datentyp kompatibel ist.

Im folgenden Codebeispiel wird zunächst ein Klon eines DataSets erstellt. Anschließend werden die Zeilen aus dem ursprünglichen DataSet zur Customers-Tabelle im DataSet-Klon für Kunden hinzugefügt, deren Country-Spalte den Wert "Germany" hat.

Dim custGermanyDS As DataSet = custDS.Clone()

Dim copyRows() As DataRow = custDS.Tables("Customers").Select("Country = 'Germany'")

Dim custTable As DataTable = custGermanyDS.Tables("Customers")
Dim copyRow As DataRow

For Each copyRow In copyRows
  custTable.ImportRow(copyRow)
Next
[C#]
DataSet custGermanyDS = custDS.Clone();

DataRow[] copyRows = custDS.Tables["Customers"].Select("Country = 'Germany'");

DataTable custTable = custGermanyDS.Tables["Customers"];

foreach (DataRow copyRow in copyRows)
  custTable.ImportRow(copyRow);

Siehe auch

Erstellen und Verwenden von DataSets | DataSet-Klasse | DataTable-Klasse