/ / Jak skopiować wiersze z DataTable do innej DataTable BEZ usuwania istniejących wierszy? - c #, .net, datatable, ado.net

Jak skopiować wiersze z DataTable do innej DataTable BEZ usuwania istniejących wierszy? - c #, .net, datatable, ado.net

Jak mogę skopiować wiersze z jednej tabeli DataTable do innej? Za pomocą DataTable.Copy() nie jest opcją, ponieważ tworzy Nową DataTable i usuwa wszystkie istniejące DaneRows. Co próbuję zrobić, to dodać wiersze w List<DataTable> do innej tabeli. Czy jest dostępna jakaś metoda, która jest w stanie to zrobić? Lub iteruje przez wszystkie tabele i wiersze oraz wywoływanie DataTable.ImportRow() moja jedyna opcja?

[AKTUALIZACJA] Ok, jest to pełny scenariusz. Mam DataTable z 2 milionami + rekordów. Ładowanie go rzuca System.OutOfMemoryException. Zdecydowałem więc, że muszę załadować stronę / wsad. Tworzę tabelę docelową za pomocą DataAdapter.FillSchema() w celu ładowania tylko kolumn. Potem uzyskuję "pełne rekordy" DataAdapter.Fill() (inny DataTable), a następnie podziel go na List<DataTable>. Podczas używania DataTable.Merge, ten wyjątek jest zgłaszany: "Nie można włączyć ograniczeń. Jeden lub więcej wierszy zawiera wartości naruszające ograniczenia inne niż puste, unikalne lub obce klucze."

Odpowiedzi:

1 dla odpowiedzi № 1

Próbowałem scalić, jak powiedział Michael z następującym kodem i działającym dla mnie.

DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Address");

table.Rows.Add("Shan", "ADC Street");

DataTable table2 = new DataTable();
table2.Columns.Add("Name");
table2.Columns.Add("Address");
table2.Rows.Add("Raj", "EFG Street");

table2.Merge(table,true);

Console.WriteLine(table2.Rows.Count);      //2
Console.WriteLine(table2.Rows[0]["Name"]); //Raj
Console.WriteLine(table2.Rows[1]["Name"]); //Shan