OleDbDataReader查詢出的結(jié)果如何轉(zhuǎn)換成DataTable啊

小云
170
2023-08-07 13:57:58
欄目: 編程語言

要將OleDbDataReader查詢結(jié)果轉(zhuǎn)換為DataTable,可以按照以下步驟進(jìn)行操作:

  1. 創(chuàng)建一個(gè)空的DataTable對(duì)象。
DataTable dataTable = new DataTable();
  1. 使用OleDbDataReader的GetSchemaTable方法獲取查詢結(jié)果的模式信息,并將其添加到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方法,逐行讀取查詢結(jié)果并將其添加到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查詢結(jié)果就會(huì)轉(zhuǎn)換為DataTable對(duì)象。

0