OleDbDataReader查询出的结果如何转换成DataTable啊

2345
2023/8/2 13:57:58
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

要将OleDbDataReader查询结果转换为DataTable,可以按照以下步骤进行操作:

  1. 创建一个空的DataTable对象。
DataTable dataTable = new DataTable();
  1. 使用OleDbDataReader的GetSchemaTable方法获取查询结果的模式信息,并将其添加到DataTable中。
DataTable schemaTable = reader.GetSchemaTable();
foreach (DataRow row in schemaTable.Rows)
{
DataColumn column = new DataColumn();
column.ColumnName = row["ColumnName"].ToString();
column.DataType = (Type)row["DataType"];
dataTable.Columns.Add(column);
}
  1. 使用OleDbDataReader的Read方法,逐行读取查询结果并将其添加到DataTable中。
while (reader.Read())
{
DataRow dataRow = dataTable.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
{
dataRow[i] = reader.GetValue(i);
}
dataTable.Rows.Add(dataRow);
}

完整示例代码如下:

DataTable dataTable = new DataTable();
DataTable schemaTable = reader.GetSchemaTable();
foreach (DataRow row in schemaTable.Rows)
{
DataColumn column = new DataColumn();
column.ColumnName = row["ColumnName"].ToString();
column.DataType = (Type)row["DataType"];
dataTable.Columns.Add(column);
}
while (reader.Read())
{
DataRow dataRow = dataTable.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
{
dataRow[i] = reader.GetValue(i);
}
dataTable.Rows.Add(dataRow);
}

这样,OleDbDataReader查询结果就会转换为DataTable对象。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: C#oledbdatareader用法有哪些