117.info
人生若只如初见

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

要将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对象。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fed37AzsLCQdVAlA.html

推荐文章

  • 有关ModifyStyleEx显示对话框的问题

    在使用ModifyStyleEx函数来修改对话框的样式时,需要注意以下几点: 确保对话框已经创建完成并且有效。可以在OnInitDialog函数中调用ModifyStyleEx函数来修改对话...

  • telnet和telnetd有什么区别

    Telnet是一种用于远程登录的协议,它允许用户通过网络访问远程计算机上的终端,以便在远程计算机上执行命令。而telnetd是运行在远程计算机上的Telnet服务器程序,...

  • WritePrivateProfileString 的问题

    WritePrivateProfileString 函数是Windows操作系统中的一个API函数,用于向INI文件中写入键值对数据。
    该函数的原型为:
    BOOL WINAPI WritePrivatePro...

  • Win8 CreateProcessAsUser管理员权限问题

    在Windows 8中,要使用CreateProcessAsUser函数以管理员身份运行进程,需要执行以下步骤: 获取管理员访问令牌:使用OpenProcessToken函数打开当前进程的访问令牌...