recorrer columns column c# datatable datarow

columns - recorrer datarow c#



C#forma simple de copiar o clonar un DataRow? (2)

Estoy buscando una manera simple de hacer un clon de DataRow. Algo así como tomar una instantánea de esa fila y guardarla. Los valores de la Fila original son libres de cambiar, pero aún tenemos otra copia guardada que no cambia. ¿Es esta la forma correcta de hacerlo?

DataRow Source, Destination; //Assume we create some columns and fill them with values Destination.ItemArray = Source.ItemArray;

¿Esto solo establecerá la referencia ItemArray de Snapshot para apuntar a la que está en Source o realmente hará una copia por separado? ¿Debería hacer esto en su lugar?

Destination.ItemArray = Source.ItemArray.Clone();

EDITAR: no creo que el segundo fragmento de código realmente compila.


Pero para asegurarse de que su nueva fila esté accesible en la nueva tabla, debe cerrar la tabla:

DataTable Destination = new DataTable(Source.TableName); Destination = Source.Clone(); DataRow sourceRow = Source.Rows[0]; Destination.ImportRow(sourceRow);


Puede usar el método ImportRow para copiar la fila de DataTable a DataTable con el mismo esquema:

var row = SourceTable.Rows[RowNum]; DestinationTable.ImportRow(row);

Actualizar:

Con tu nueva Edición, creo:

var desRow = dataTable.NewRow(); var sourceRow = dataTable.Rows[rowNum]; desRow.ItemArray = sourceRow.ItemArray.Clone() as object[];

trabajará