Anscheinend möchten Sie nicht die gesamte DataTable als Kopie behalten, da Sie nur einige Zeilen benötigen, oder? Wenn Sie eine Kreteria haben, die Sie mit einer Auswahl in der Tabelle angeben können, können Sie nur diese Zeilen in ein zusätzliches Sicherungsarray von DataRow wie kopieren
DataRow[] rows = sourceTable.Select("searchColumn = value");
Die .Select () -Funktion hat mehrere Optionen und diese kann zB als SQL gelesen werden
SELECT * FROM sourceTable WHERE searchColumn = value;
Anschließend können Sie die gewünschten Zeilen wie oben beschrieben importieren.
targetTable.ImportRows(rows[n])
... für jedes gültige n, das Sie mögen, aber die Spalten müssen in jeder Tabelle gleich sein.
Einige Dinge, die Sie über ImportRow wissen sollten, sind, dass es zur Laufzeit Fehler bei der Verwendung von Primärschlüsseln gibt!
Zuerst wollte ich überprüfen, ob bereits eine Zeile vorhanden war, die ebenfalls aufgrund eines fehlenden Primärschlüssels fehlschlug, aber dann schlug die Überprüfung immer fehl. Am Ende habe ich beschlossen, die vorhandenen Zeilen vollständig zu löschen und die gewünschten Zeilen erneut zu importieren.
Das zweite Problem hat geholfen zu verstehen, was passiert. Ich verwende die Importfunktion, um Zeilen mit einem ausgetauschten Eintrag in einer Spalte zu duplizieren. Mir wurde klar, dass es sich immer geändert hat und immer noch ein Verweis auf die Zeile im Array ist. Ich musste zuerst das Original importieren und dann den gewünschten Eintrag ändern.
In der Referenz werden auch die Primärschlüsselfehler erläutert, die beim ersten Versuch, die Zeile zu importieren, aufgetreten sind, da sie tatsächlich verdoppelt wurde.