Jak mogę skopiować określone wiersze z DataTable do innego Datable w języku C #? Będzie więcej niż jeden wiersz.
165
foreach (DataRow dr in dataTable1.Rows) {
if (/* some condition */)
dataTable2.Rows.Add(dr.ItemArray);
}
Powyższy przykład zakłada, że dataTable1
i dataTable2
mają taką samą liczbę, typ i kolejność kolumn.
ItemArray
część na końcu wyrażenia. Upewnij się, że dodajesz wartości wiersza, a nie sam wiersz.DataTable.Clone
metody: msdn.microsoft.com/en-us/library/…Kopiuj określone wiersze z tabeli do innej
źródło
Spróbuj tego
źródło
Sprawdź to, może ci się spodobać (poprzednio sklonuj tabelę 1 do tabeli 2):
Lub:
źródło
Obsługiwane w: 4, 3.5 SP1, możesz teraz po prostu wywołać metodę na obiekcie.
źródło
W wyniku pozostałych postów jest to najkrótszy jaki udało mi się uzyskać:
źródło
sourceTable
testament,destTable
również wyczyszczę?poniższa próbka byłaby najszybszym sposobem skopiowania jednego wiersza. każda komórka jest kopiowana na podstawie nazwy kolumny. w przypadku, gdy nie potrzebujesz określonej komórki do skopiowania, spróbuj złapać lub dodać jeśli. jeśli zamierzasz skopiować więcej niż 1 wiersz, zapętl poniższy kod.
dataset1.Tables [1] .Rows [ 0 ] [i]; zmień indeks 0 na określony indeks wiersza lub możesz użyć zmiennej, jeśli zamierzasz zapętlić się lub jeśli będzie to logiczne
źródło
źródło
Dla tych, którzy chcą zapytać SQL o jedno polecenie:
To zapytanie skopiuje dane z
TABLE001
doTABLE002
i zakładamy, że obie kolumny mają różne nazwy kolumn.Nazwy kolumn są odwzorowywane jeden do jednego, na przykład:
COL001_MEM_ID -> COL001_MEM_ID
COL001_MEM_NAME -> COL002_MEM_NAME
COL001_MEM_ADD -> COL002_MEM_ADD
COL001_CREATE_USER_C -> COL002_CREATE_USER_C
COL002_CREATE_S -> COL002_CREATE_S
Możesz również określić klauzulę where, jeśli potrzebujesz jakiegoś warunku.
źródło
Aby skopiować całe dane, po prostu zrób to:
źródło
Stworzyłem łatwy sposób rozwiązania tego problemu
źródło