Byte [] DataTable 열 오류가있는 SqlBulkCopy

bytearray c# sqlbulkcopy strongly-typed-dataset

문제

필자는 바이너리 (4) 데이터베이스 테이블 필드에 삽입하려고하는 바이트 [] 열로 열 중 하나가있는 데이터 테이블을 포함하는 강력한 형식의 데이터 집합을 가지고 있습니다. 문제없이 byte [] 열 값을 설정할 수 있지만 datatable에서 sqlbulkcopy를 실행하면 다음 예외가 발생합니다.

"데이터 원본에서 Int32 유형의 지정된 값을 지정된 대상 열의 이진 형식으로 변환 할 수 없습니다."

datatable은 대형 데이터 테이블이며 sqlbulkcopy는 datatable 및 database 테이블에서 byte [] / binary (4) 열을 뺀 값으로 올바르게 작동합니다. 다음은 .NET 2.0을 사용하여 SqlBulkCopy를 깨는 코드입니다.

byte[] codeByteArray = GetByteArray();
dt.byteArrayCol = codeByteArray;

...

using(SqlBulkCopy bc = new SqlBulkCopy(conn))
{
    bc.DestinationTableName = dt.TableName;
    bc.WriteToServer(dt);
    bc.Close();
}

수락 된 답변

내 문제를 발견했다. 내 데이터 테이블의 Byte [] 열이 해당 데이터베이스 열 서수와 같은 서수 위치에 있지 않습니다. datatable 열 서수는 56이고 데이터베이스 열 서수는 8이므로 재구성해야하는 데이터 테이블이나 sqlbulkcopy의 열 매핑 중 하나입니다. 데이터 테이블을 재구성하는 것이 훨씬 쉽고 빠릅니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.