@Daniel Cai: 我现在就是用的这种方式哦!
/// <summary>
/// 自定义将IDataReader转换为DataTable
/// </summary>
/// <param name="reader"></param>
/// <returns></returns>
public static void CustomLoadDataTable(DataTable dataTable, IDataReader reader)
{
int fieldCount = reader.FieldCount;
for (int i = 0; i < fieldCount; ++i)
{
dataTable.Columns.Add(reader.GetName(i), reader.GetFieldType(i));
}
dataTable.BeginLoadData();
object[] objValues = new object[fieldCount];
while (reader.Read())
{
reader.GetValues(objValues);
dataTable.LoadDataRow(objValues, true);
}
reader.Close();
dataTable.EndLoadData();
}