Để cải thiện hiệu suất, tôi muốn chuyển đổi dữ liệu thành datareader. Tôi không thể làm điều đó thông qua truy vấn. Vì vậy, có cách nào khác để làm như vậy?Chuyển đổi dữ liệu thành datareader
11
A
Trả lời
30
Tôi biết điều này là cũ, nhưng câu trả lời ở đây dường như đã bị mất điểm của câu hỏi Ops.
DataTables có phương thức được gọi là CreateDataReader, cho phép bạn chuyển đổi DataTable thành đối tượng DbDataReader. Trong trường hợp này là DataTableReader.
DataTable table = new DataTable();
//Fill table with data
//table = YourGetDataMethod();
DataTableReader reader = table.CreateDataReader();
Tôi nên chỉ ra rằng điều này sẽ không làm tăng hiệu suất vì bạn nên sử dụng cái này hoặc cái kia.
Dưới đây là một số tài nguyên hơn về vấn đề này:
2
ví dụ
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) thực hiện điều này và hơn thế nữa. Đặc biệt, khi người đọc được tạo ra với KeyInfo. – AMissico
0
Sử dụng constructor DataTable,
DataTable table = new DataTable();
//Fill table with data
DataTableReader reader = new DataTableReader(table);
Tốt Look!
Các vấn đề liên quan
- 1. Làm cách nào để chuyển đổi DataSet a thành DataReader?
- 2. Chuyển đổi tập dữ liệu thành XML
- 3. phương pháp Generic để đọc dữ liệu từ DataReader
- 4. Làm thế nào để chuyển đổi một nhà quản trị dữ liệu thành datatable
- 5. NSJSONSerialization - Không thể chuyển đổi dữ liệu thành chuỗi
- 6. XSLT: Chuyển đổi dữ liệu base64 thành tệp hình ảnh
- 7. Chuyển đổi dữ liệu có thể định dạng thành PDF
- 8. mysqldb chuyển đổi dữ liệu dấu thời gian thành Không
- 9. R: chuyển đổi khung dữ liệu thành bảng
- 10. Chuyển đổi dữ liệu nhị phân thành base64 bằng javascript
- 11. Chuyển đổi dữ liệu từ cv :: Mat thành mxArray
- 12. Chuyển đổi dữ liệu hàng thành cột nhị phân
- 13. Chuyển đổi byte [] thành chuỗi Base64 cho dữ liệu URI
- 14. Chuyển đổi dữ liệu biểu mẫu thành đối tượng JSON
- 15. Chuyển đổi cơ sở dữ liệu Postgres thông thường thành cơ sở dữ liệu không gian
- 16. Chuyển đổi dữ liệu tiêu cực thành tích cực dữ liệu trong SQL Server
- 17. Chuyển đổi tên hàng trong nhiều khung dữ liệu thành cột trong khung dữ liệu
- 18. chuyển đổi kiểu dữ liệu datetime2 thành lỗi kiểu dữ liệu datetime với Mã EF trước?
- 19. Làm cách nào để chuyển đổi một DataTable thành IDatareader?
- 20. "Chuyển đổi không thành công khi chuyển đổi giá trị varchar 'NULL' thành kiểu dữ liệu int"
- 21. Làm thế nào để chuyển đổi Datareader Kết quả của DbType.Time để Timespan Object?
- 22. Chuyển đổi dữ liệu OBJ sang CSS3D
- 23. Bootstrap tooltip dữ liệu chuyển đổi
- 24. Cách dễ dàng để chuyển đổi bảng dữ liệu thành bảng băm hoặc sqldatareader thành hashtable
- 25. Chuyển đổi org.w3c.dom.Node thành Tài liệu
- 26. Haskell: Chuyển đổi danh sách dữ liệu
- 27. D3 JSON chuyển đổi dữ liệu
- 28. Cách chuyển danh sách thành bảng dữ liệu
- 29. Dữ liệu lớn chuyển thành "giao dịch" từ gói gói
- 30. Cách tốt nhất để chuyển đổi cơ sở dữ liệu mysql thành cơ sở dữ liệu sqlite là gì?
Tôi muốn chuyển đổi dữ liệu thành datareader. – user1049021