Quiero convertir una DataRow
matriz en DataTable
... ¿Cuál es la forma más sencilla de hacer esto?
98
¿Por qué no iterar a través de su matriz DataRow y agregar (usando DataRow.ImportRow, si es necesario, para obtener una copia de DataRow), algo como:
foreach (DataRow row in rowArray) {
dataTable.ImportRow(row);
}
Asegúrese de que su dataTable tenga el mismo esquema que DataRows en su matriz DataRow.
DataTable dataTable = new DataTable(); dataTable.ImportRow(dataRow); MyControl.DataSource = dataTable;
rowArray.CopyToDataTable();
porque mantiene el esquema de la tabla y no lo reemplaza con un nuevo objeto de tabla!Para .Net Framework 3.5+
Pero si no hay filas en la matriz, puede causar errores como El origen no contiene DataRows . Por lo tanto, si decide utilizar este método
CopyToDataTable()
, debe verificar la matriz para saber si tiene filas de datos o no.Referencia disponible en MSDN: Método DataTableExtensions.CopyToDataTable (IEnumerable)
fuente
copyToDataTable()
? No lo encontré en .net 2.0copyToDataTable()
método crea una copia perfecta de las columnas de las filas seleccionadas, mientras que eldatatable.ImportRow(row)
método no lo hacefuente
Input array is longer than the number of columns in this table.
". Error de versión con clonación: "Unable to cast object of type 'System.Data.DataRow' to type 'System.IConvertible'.Couldn't store <System.Data.DataRow> in StoreOrder Column. Expected type is Int64.
" Nota:StoreOrder
es la primera columna del esquema de la tabla. Parece que está intentando meter toda la fila de datos en esa primera columnaOtra forma es usar un DataView
fuente
La forma sencilla es:
fuente
fuente
fuente
fuente
.Net 3.5+ agregó DataTableExtensions, use el método DataTableExtensions.CopyToDataTable
Para la matriz de fila de datos, simplemente use .CopyToDataTable () y devolverá la tabla de datos.
Para uso en una sola fila de datos
fuente
Aqui esta la solucion. Debería funcionar bien.
fuente
En caso de que alguien lo necesite en VB.NET:
fuente
Podrías usar System.Linq así:
fuente
Primero debe clonar la estructura de la tabla de datos y luego importar las filas usando el bucle for
fuente
fuente