값 유형 및 열 유형에 대한 필수 유형의 DataRow "솔루션과 일치하지 않습니다

오늘날 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, 전)를 던져;
            }

        }

추천

출처www.cnblogs.com/net-sky/p/12448072.html