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á