0

我有一个强类型数据集,其中包含一个数据表,其中一个列作为 byte[] 列,我试图将其插入到 binary(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();
}
4

1 回答 1

1

我发现了我的问题。我的数据表中的 Byte[] 列与相应的数据库列序号的序号位置不同。数据表列序号为 56,而数据库列序号为 8,因此需要重新组织数据表或 sqlbulkcopy 的列映射。重组数据表更加容易和快捷。

于 2010-07-28T12:50:52.117 回答