SqlBulkCopy与Byte [] DataTable列错误

bytearray c# sqlbulkcopy strongly-typed-dataset

我有一个强类型数据集,其中包含一个数据表,其中一列作为byte []列,我试图插入二进制(4)数据库表字段。我能够毫无问题地设置byte []列值,但是当我在数据表上运行sqlbulkcopy时,我收到以下异常:

“来自数据源的Int32类型的给定值无法转换为指定目标列的二进制类型。”

数据表是一个大数据表,sqlbulkcopy可以正常工作,数据表和数据库表减去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 []列与相应的数据库列序号不在相同的序号位置。数据表列序号为56,而数据库列序号为8,因此需要重新组织数据表或sqlbulkcopy的列映射。重新组织数据表更容易,更快捷。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因