Wygląda na to, że nie chcesz zachować całego DataTable jako kopii, ponieważ potrzebujesz tylko kilku wierszy, prawda? Jeśli masz kreterię, którą możesz określić za pomocą zaznaczenia w tabeli, możesz skopiować tylko te wiersze do dodatkowej kopii zapasowej tablicy DataRow, takiej jak
DataRow[] rows = sourceTable.Select("searchColumn = value");
Funkcja .Select () ma kilka opcji, a tę można np. Odczytać jako SQL
SELECT * FROM sourceTable WHERE searchColumn = value;
Następnie możesz zaimportować żądane wiersze, jak opisano powyżej.
targetTable.ImportRows(rows[n])
... dla dowolnego poprawnego n, które chcesz, ale kolumny muszą być takie same w każdej tabeli.
Kilka rzeczy, które powinieneś wiedzieć o ImportRow, to fakt, że podczas używania kluczy podstawowych będą występować błędy!
Najpierw chciałem sprawdzić, czy istnieje już wiersz, który również nie powiódł się z powodu braku klucza podstawowego, ale potem sprawdzenie zawsze kończyło się niepowodzeniem. W końcu zdecydowałem się całkowicie wyczyścić istniejące wiersze i ponownie zaimportować te, które chciałem.
Druga kwestia pomogła zrozumieć, co się dzieje. Sposób, w jaki używam funkcji importu, polega na duplikowaniu wierszy z wymienionym wpisem w jednej kolumnie. Zdałem sobie sprawę, że zawsze się to zmieniało i nadal było to odniesienie do wiersza w tablicy. Najpierw musiałem zaimportować oryginał, a następnie zmienić wpis, który chciałem.
W odwołaniu wyjaśniono również błędy klucza podstawowego, które pojawiły się, gdy po raz pierwszy próbowałem zaimportować wiersz, ponieważ naprawdę został podwojony.