read name index from column c# arrays datatable datarow

c# - name - Manera simple de convertir datarow array a datatable



get field from datarow c# (12)

¿Por qué no iterar a través de su matriz DataRow y agregar (utilizando DataRow.ImportRow, si es necesario, para obtener una copia de DataRow), algo así 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.

Quiero convertir una matriz DataRow en DataTable ... ¿Cuál es la forma más sencilla de hacer esto?


.Net 3.5+ agregó DataTableExtensions, use el método DataTableExtensions.CopyToDataTable

Para la matriz de datos simplemente use .CopyToDataTable () y devolverá la tabla de datos.

Para un solo uso de datarow

new DataRow[] { myDataRow }.CopyToDataTable()


Aquí está la solución. Debería funcionar bien.

DataTable dt = new DataTable(); dt = dsData.Tables[0].Clone(); DataRows[] drResults = dsData.Tables[0].Select("ColName = ''criteria''); foreach(DataRow dr in drResults) { object[] row = dr.ItemArray; dt.Rows.Add(row); }


En caso de que alguien lo necesite en VB.NET:

Dim dataRow as DataRow Dim yourNewDataTable as new datatable For Each dataRow In yourArray yourNewDataTable.ImportRow(dataRow) Next


Otra forma es usar un DataView

// Create a DataTable DataTable table = new DataTable() ... // Filter and Sort expressions string expression = "[Birth Year] >= 1983"; string sortOrder = "[Birth Year] ASC"; // Create a DataView using the table as its source and the filter and sort expressions DataView dv = new DataView(table, expression, sortOrder, DataViewRowState.CurrentRows); // Convert the DataView to a DataTable DataTable new_table = dv.ToTable("NewTableName");


Puede usar System.Linq de esta manera:

if (dataRows != null && dataRows.Length > 0) { dataTable = dataRows.AsEnumerable().CopyToDataTable(); }


La manera simple es:

// dtData is DataTable that contain data DataTable dt = dtData.Select("Condition=1").CopyToDataTable(); // or existing typed DataTable dt dt.Merge(dtData.Select("Condition=1").CopyToDataTable());


Para .Net Framework 3.5+

DataTable dt = new DataTable(); DataRow[] dr = dt.Select("Your string"); DataTable dt1 = dr.CopyToDataTable();

Pero si no hay filas en la matriz, puede causar los errores, como La fuente no contiene DataRows . Por lo tanto, si decide usar este método CopyToDataTable() , debe verificar la matriz para saber si tiene datarows o no.

if (dr.Length > 0) DataTable dt1 = dr.CopyToDataTable();

Referencia disponible en MSDN: Método DataTableExtensions.CopyToDataTable (IEnumerable)


DataTable dataTable = new DataTable(); dataTable = OldDataTable.Tables[0].Clone(); foreach(DataRow dr in RowData.Tables[0].Rows) { DataRow AddNewRow = dataTable.AddNewRow(); AddNewRow.ItemArray = dr.ItemArray; dataTable.Rows.Add(AddNewRow); }


DataTable dt = myDataRowCollection.CopyToDataTable<DataRow>();


DataTable dt = new DataTable(); foreach (DataRow dr in drResults) { dt.ImportRow(dr); }


DataTable dt = new DataTable(); DataRow[] dr = (DataTable)dsData.Tables[0].Select("Some Criteria"); dt.Rows.Add(dr);