Para mejorar el rendimiento Quiero convertir datatable a datareader. No puedo hacer eso a través de la consulta. Entonces, ¿hay alguna otra forma de hacerlo?Convertir datatable a lector de datos
11
A
Respuesta
30
Sé que esto es viejo, pero las respuestas aquí parece que han perdido el punto de la cuestión PO.
Las tablas de datos tienen un método llamado CreateDataReader que le permitirá convertir una DataTable a un objeto DbDataReader. En este caso, un DataTableReader.
DataTable table = new DataTable();
//Fill table with data
//table = YourGetDataMethod();
DataTableReader reader = table.CreateDataReader();
Debo señalar que esto no aumentará el rendimiento, ya que debe utilizar uno u otro.
Éstos son algunos más recursos en la materia:
2
por ejemplo
public DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
try
{
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
return datatable;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
return datatable;
}
}
0
public DataTable GetTable(IDataReader _reader)
{
DataTable dataTable1 = _reader.GetSchemaTable();
DataTable dataTable2 = new DataTable();
string[] arrayList = new string[dataTable1.Rows.Count];
for (int i = 0; i < dataTable1.Rows.Count; i++)
{
DataColumn dataColumn = new DataColumn();
if (!dataTable2.Columns.Contains(dataTable1.Rows[i][ "ColumnName "].ToString()))
{
dataColumn.ColumnName = dataTable1.Rows[i][ "ColumnName "].ToString();
dataColumn.Unique = Convert.ToBoolean(dataTable1.Rows[i][ "IsUnique "]);
dataColumn.AllowDBNull = Convert.ToBoolean(dataTable1.Rows[i][ "AllowDBNull "]);
dataColumn.ReadOnly = Convert.ToBoolean(dataTable1.Rows[i][ "IsReadOnly "]);
dataColumn.DataType = (Type)dataTable1.Rows[i][ "DataType "];
arrayList[i] =dataColumn.ColumnName;
dataTable2.Columns.Add(dataColumn);
}
}
dataTable2.BeginLoadData();
while (_reader.Read())
{
DataRow dataRow = dataTable2.NewRow();
for (int j = 0; j < arrayList.Length ; j++)
{
dataRow[arrayList[j]] = _reader[arrayList[j]];
}
dataTable2.Rows.Add(dataRow);
}
_reader.Close();
dataTable2.EndLoadData();
return dataTable2;
}
+0
FYI, DataTable.Loan (DataReader) hace esto y mucho más. Especialmente, cuando el lector fue creado con KeyInfo. – AMissico
0
Uso constructor DataTable,
DataTable table = new DataTable();
//Fill table with data
DataTableReader reader = new DataTableReader(table);
buena mirada!
Cuestiones relacionadas
- 1. Cómo convertir un lector de datos a datatable
- 2. convertir datos csv a DataTable en VB.net
- 3. Cómo convertir IQueryable a DataTable
- 4. Convertir DataTable a CSV stream
- 5. Casting datatable genérico a datatable type
- 6. Tabla de datos ADO.NET frente a lector de datos
- 7. ¿Convertir DataTable a lista genérica?
- 8. ¿Convertir selecciones nuevas a DataTable?
- 9. Convertir DataTable a lista genérica en C#
- 10. Convertir SqlDataSource a DataTable y DataView
- 11. Convertir DataTable a IEnumerable <T>
- 12. Convertir JSON para DataTable
- 13. La carga del lector DataTable es muy lenta
- 14. Convertir DataTable a JSON con clave por fila
- 15. Forma simple de convertir datarow array a datatable
- 16. ¿Cómo convertir datatable a json string usando json.net?
- 17. Cómo agregar un DataTable a otro DataTable
- 18. ¿Convertir y usar DataTable en WPF DataGrid?
- 19. ¿Hay alguna manera de usar SqlBulkCopy sin convertir los datos a una DataTable?
- 20. lector de datos es incompatible ... miembro no tiene correspondiente en la columna lector de datos
- 21. Cómo convertir PrimeFaces t: dataTable a h norma: dataTable (sin piel) y luego imprimirlo
- 22. DataTable Convertir a la lista <T>
- 23. Convertir DataTable a la lista <T>
- 24. jqGrid y lector JSON
- 25. Convertir DataTable en archivo XML y viceversa
- 26. C#, DataTable a ArrayList?
- 27. CDocumento XMLDo a DataTable?
- 28. DataColumn a DataTable
- 29. De datatable a Entity
- 30. Copia de datos de una DataTable a otra
Quiero convertir datatable a datareader. – user1049021