/// <summary>
/// 將DataReader 轉為 DataTable
/// </summary>
/// <param name="DataReader">OleDbDataReader</param>
protected DataTable ConvertDataReaderToDataTable(OleDbDataReader reader)
{
DataTable objDataTable = new DataTable("TmpDataTable");
try
{
int intFieldCount = reader.FieldCount;//擷取當前行中的列數;
for (int intCounter = 0; intCounter <= intFieldCount - 1; intCounter++)
{
objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter));
}
//populate datatable
objDataTable.BeginLoadData();
//object[] objValues = new object[intFieldCount -1];
object[] objValues = new object[intFieldCount];
while (reader.Read())
{
reader.GetValues(objValues);
objDataTable.LoadDataRow(objValues, true);
}
reader.Close();
objDataTable.EndLoadData();
return objDataTable;
}
catch (Exception ex)
{
throw new Exception("轉換出錯出錯!", ex);
}
}