2009-08-26 18 views
7

Jeśli mam DataTable i chcę utworzyć nowy wiersz, najpierw zadzwoń DataTable.NewRow(), który zwraca DataRow. Ten wiersz ma schemat schematu i mogę ustawić wartość każdego pola w wierszu. W tym momencie tabela "wie" o rzędzie, czy też dzieje się to tylko po tym, jak zadzwonię pod numer DataTable.Rows.Add(DataRow row)?Czy mogę wielokrotnie dodać tę samą funkcję DataRow do DataTable?

Jeśli zadzwonię pod numer DataTable.Rows.Add(), to czy są to duplikaty wierszy utworzonych w tabeli danych z duplikatami?

Powód, dla którego pytam, to próbuję napisać funkcję rekursywną, która spowoduje iterację struktury drzewa i zapełnienie DataTable wartościami. Tak więc mam sytuacje, w których wiersze tworzone dla każdego dziecka będą miały kolumny, które mają wszystkie te same wartości, ponieważ pochodzą od rodzica.

Więc moim pomysłem było przekazanie DataRow informacji o rodzicach każdemu dziecku. Dziecko doda swoje informacje, a następnie doda wiersz do tabeli. Ale próbuję dowiedzieć się, czy muszę zadzwonić pod numer DataTable.NewRow() dla każdego dziecka, lub jeśli nowe wiersze zostaną utworzone automatycznie, jeśli dodaję ten sam wiersz wiele razy.

+0

Wow - zapytał 10 godzin temu, a już pokazała się w google, kiedy poszedłem szuka podobnej rzeczy. Dzięki! – Jeffrey

Odpowiedz

14

No, ale łatwo skopiować wiersz więc można dostać to, co chcesz (zakłada istniejący wiersz jest w zmiennej o nazwie existingRow):

var newRow = dataTable.NewRow(); 
newRow.ItemArray = existingRow.ItemArray; 
dataTable.Rows.Add(newRow); 
0

Nie, wygeneruje wyjątek typu System.ArgumentException.

+0

Czy istnieje prosty sposób tworzenia Duplicate DataRow z tymi samymi wartościami? –

-1

I zaleca, aby umieścić dane w tablicy a następnie dodać dane do tabeli danych np

yourDataTable.Rows.Add(data[0]........); 

newdatarow wygeneruje błąd wyjątku

Powiązane problemy