2009-08-26 19 views
7

Se si dispone di un DataTable e si desidera creare una nuova riga, è necessario chiamare prima lo DataTable.NewRow() che restituisce un DataRow. Questa riga ha quindi lo schema della tabella e posso impostare il valore di ogni campo nella riga. A questo punto la tabella "sa" della Row, o succede solo dopo aver chiamato DataTable.Rows.Add(DataRow row)?Posso aggiungere lo stesso DataRow a un DataTable più volte?

Se chiamo più DataTable.Rows.Add() di una volta sono le righe duplicate create nella tabella di dati con i valori duplicati?

La ragione per cui chiedo è che sto cercando di scrivere una funzione ricorsiva che eseguirà una struttura ad albero e popolerà un DataTable con valori. Quindi ho situazioni in cui le righe che vengono create per ogni bambino avranno colonne che hanno tutti gli stessi valori perché provengono dal genitore.

Quindi la mia idea era di passare un DataRow con le informazioni del genitore ad ogni bambino. Il bambino dovrebbe aggiungere le sue informazioni e quindi aggiungere la riga al tavolo. Ma sto cercando di capire se devo chiamare DataTable.NewRow() per ogni bambino, o se nuove righe verranno create automaticamente se aggiungo la stessa riga più volte.

+0

Wow - ha chiesto 10 ore fa, e già si presentò in google quando sono andato alla ricerca di una cosa simile. Grazie! – Jeffrey

risposta

14

No, ma è facile copiare una fila in modo da poter ottenere quello che vuoi (assume la riga esistente è in una variabile chiamata existingRow):

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

No, genererà un'eccezione di tipo System.ArgumentException.

+0

C'è un modo semplice per creare un DataRow duplicato con gli stessi valori? –

-1

vi consiglio di inserire i dati in un array e quindi aggiungere i dati alla tabella dati es

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

newdatarow genererà errore di eccezione

Problemi correlati