Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können eine Kopie von DataSet erstellen, sodass Sie mit Daten arbeiten können, ohne die ursprünglichen Daten zu beeinflussen, oder mit einer Teilmenge der Daten aus einem DataSet arbeiten können. Beim Kopieren eines DataSets können Sie:
Erstellen Sie eine genaue Kopie des DataSets, einschließlich Schema,Daten, Zeilenstatusinformationen und Zeilenversionen.
Erstellen Sie ein DataSet , das das Schema eines vorhandenen DataSets enthält, aber nur Zeilen, die geändert wurden. Sie können alle Geänderten Zeilen zurückgeben oder einen bestimmten DataRowState angeben. Weitere Informationen zu Zeilenzuständen finden Sie unter Zeilenzustände und Zeilenversionen.
Kopieren Sie das Schema oder die relationale Struktur des DataSets nur, ohne Zeilen zu kopieren. Zeilen können in eine vorhandene DataTable mit ImportRow importiert werden.
Verwenden Sie die Methode des Copy, um eine genaue Kopie des DataSets zu erstellen, die sowohl Schema als auch Daten enthält. Das folgende Codebeispiel zeigt, wie eine genaue Kopie des DataSets erstellt wird.
Dim copyDataSet As DataSet = customerDataSet.Copy()
DataSet copyDataSet = customerDataSet.Copy();
Wenn Sie eine Kopie eines DataSets erstellen möchten, das Schema und nur die Daten enthält, die hinzugefügte, geänderte oder gelöschte Zeilen darstellen, verwenden Sie die GetChanges Methode des DataSet. Sie können getChanges auch verwenden, um nur Zeilen mit einem angegebenen Zeilenstatus zurückzugeben, indem Sie einen DataRowState-Wert übergeben, wenn GetChanges aufgerufen wird. Das folgende Codebeispiel zeigt, wie ein DataRowState-Objekt beim Aufrufen von GetChanges übergeben wird.
' Copy all changes.
Dim changeDataSet As DataSet = customerDataSet.GetChanges()
' Copy only new rows.
Dim addedDataSetAs DataSet = _
customerDataSet.GetChanges(DataRowState.Added)
// Copy all changes.
DataSet changeDataSet = customerDataSet.GetChanges();
// Copy only new rows.
DataSet addedDataSet= customerDataSet.GetChanges(DataRowState.Added);
Verwenden Sie die Methode des Clone, um eine Kopie eines DataSets zu erstellen, das nur das Schema enthält. Sie können dem geklonten DataSet auch vorhandene Zeilen hinzufügen, indem Sie die ImportRow-Methode der DataTable verwenden. ImportRow fügt der angegebenen Tabelle Daten, Zeilenstatus und Zeilenversionsinformationen hinzu. Spaltenwerte werden nur hinzugefügt, wenn der Spaltenname übereinstimmt und der Datentyp kompatibel ist.
Im folgenden Codebeispiel wird ein Klon eines DataSet erstellt und dann die Zeilen aus dem ursprünglichen DataSet der Tabelle " Customers " im DataSet-Klon für Kunden hinzugefügt, in denen die Spalte " LandRegion " den Wert "Deutschland" aufweist.
Dim customerDataSet As New DataSet
customerDataSet.Tables.Add(New DataTable("Customers"))
customerDataSet.Tables("Customers").Columns.Add("Name", GetType(String))
customerDataSet.Tables("Customers").Columns.Add("CountryRegion", GetType(String))
customerDataSet.Tables("Customers").Rows.Add("Juan", "Spain")
customerDataSet.Tables("Customers").Rows.Add("Johann", "Germany")
customerDataSet.Tables("Customers").Rows.Add("John", "UK")
Dim germanyCustomers As DataSet = customerDataSet.Clone()
Dim copyRows() As DataRow = _
customerDataSet.Tables("Customers").Select("CountryRegion = 'Germany'")
Dim customerTable As DataTable = germanyCustomers.Tables("Customers")
Dim copyRow As DataRow
For Each copyRow In copyRows
customerTable.ImportRow(copyRow)
Next
DataSet customerDataSet = new DataSet();
customerDataSet.Tables.Add(new DataTable("Customers"));
customerDataSet.Tables["Customers"].Columns.Add("Name", typeof(string));
customerDataSet.Tables["Customers"].Columns.Add("CountryRegion", typeof(string));
customerDataSet.Tables["Customers"].Rows.Add("Juan", "Spain");
customerDataSet.Tables["Customers"].Rows.Add("Johann", "Germany");
customerDataSet.Tables["Customers"].Rows.Add("John", "UK");
DataSet germanyCustomers = customerDataSet.Clone();
DataRow[] copyRows =
customerDataSet.Tables["Customers"].Select("CountryRegion = 'Germany'");
DataTable customerTable = germanyCustomers.Tables["Customers"];
foreach (DataRow copyRow in copyRows)
customerTable.ImportRow(copyRow);