2009-08-26 19 views
7

Si tengo una DataTable y quiero crear una nueva fila, primero llamo al DataTable.NewRow(), que devuelve una DataRow. Esta fila tiene el esquema de la Tabla y puedo establecer el valor de cada campo en la fila. En este punto, ¿la tabla "sabe" sobre la Fila, o solo ocurre después de que llamo al DataTable.Rows.Add(DataRow row)?¿Puedo agregar el mismo DataRow a una DataTable varias veces?

Si llamo a DataTable.Rows.Add() más de una vez, ¿son filas duplicadas creadas en la tabla de datos con valores duplicados?

La razón por la que pregunto es que estoy tratando de escribir una función recursiva que iterará por una estructura de árbol y rellenará una tabla de datos con valores. Así que tengo situaciones en las que las filas que se crean para cada niño tendrán columnas que tienen todos los mismos valores porque provienen del padre.

Así que mi idea era pasar un DataRow con la información de los padres a cada niño. El niño agregaría su información y luego agregaría la fila a la tabla. Pero estoy tratando de averiguar si necesito llamar al DataTable.NewRow() para cada niño, o si se crearán nuevas filas automáticamente si agrego la misma fila varias veces.

+0

Wow - preguntó hace 10 horas, y ya se presentó en Google cuando fui en busca de una cosa similar. ¡Gracias! – Jeffrey

Respuesta

14

No, pero es fácil de copiar una fila para que pueda obtener lo que quiere (asume la fila existente está en una variable llamada existingRow):

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

No, generará una excepción de tipo System.ArgumentException.

+0

¿Existe alguna manera fácil de crear un DataRow duplicado con los mismos valores? –

-1

recomiendo que se pone los datos en una matriz y luego agregue los datos a la tabla de datos , por ej.

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

newdatarow va a generar error de excepción

Cuestiones relacionadas