오늘날 VS2005에 SqlDataReader 개체는 DataTable을하는 변환의 "ID와 일치하지 않는 값 유형 컬럼 형 컬럼 <30>에 저장 될 수 없다.에만 DataRow 유형이 원하는"원래 여기 후의 에러 코드는 다음 체크 문제는, 관련 정보 검색, (빨간색 부분에 수정 된 단어의 파란색 부분)을 찾은 후, 성공적으로 수정
공용 static DataTable을 ConvertDataReaderToDataTable (방법 OleDbDataReader하여 DataReader)
{
//定义DataTable의和模式
DataTable을 datatableTemp = 새로운 DataTable의 ();
DataTable을하여 SchemaTable dataReader.GetSchemaTable = ();
시도
{
//动态添加表的数据列
foreach는 (schemaTable.Rows에서 DataRow를 myRow)
{
) (DataColumn에 myDataColum = 새를 DataColumn을;
//myDataColum.DataType myRow.GetType = ();
myDataColum.DataType = System.Type.GetType ( "선택 System.String");
myDataColum.ColumnName myRow = [0]로 .toString ();
datatableTemp.Columns.Add (myDataColum);
}
//添加表的数据
동안 (dataReader.Read ())
{
DataRow를 myDataRow datatableTemp.NewRow = ();
경우 (나는 <schemaTable.Rows.Count; INT 나 0 = I ++)
{
myDataRow [I] = DataReader가 [I]로 .toString ();
}
datatableTemp.Rows.Add (myDataRow);
myDataRow = NULL;
}
하여 SchemaTable = NULL;
dataReader.Close ();
datatableTemp를 반환;
}
캐치 (예외 예)
{
새로운 예외 (ex.Message, 전)를 던져;
}
}