IDataReader 转换成DataTable

来源:互联网 发布:dk编程 编辑:程序博客网 时间:2024/04/30 08:44


private DataTable GetDataTableFromIDataReader (IDataReader reader)
  {
  DataTable dt = new DataTable();
  bool init = false;
  dt.BeginLoadData();
  object[] vals = new object[0];
  while (reader.Read())
  {
    if (!init)
    {
    init = true;
    int fieldCount = reader.FieldCount;
    for (int i=0; i<fieldCount; i++)
    {
      dt.Columns.Add (reader.GetName(i), reader.GetFieldType (i));
    }
    vals = new object[fieldCount];
    }
    reader.GetValues (vals);
    dt.LoadDataRow (vals, true);
  }
  reader.Close();
  dt.EndLoadData();
  return dt;
  }