SqlBulkCopy with Byte [] DataTable列错误
问题描述:
我有一个强类型的数据集,包含一个数据表,其中一个列作为一个byte []列,我试图插入二进制(4)数据库表字段。我可以毫无问题地设置byte []列的值,但是当我在数据表上运行sqlbulkcopy时,我收到以下异常:SqlBulkCopy with Byte [] DataTable列错误
“数据源中Int32类型的给定值无法转换为类型指定目标列的二进制文件“。
数据表是一个很大的数据表,并且sqlbulkcopy可以在数据表和数据库表减去字节[] /二进制(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的列映射。重新组织数据表要容易和快速。
您能否显示DataTable的创建? – 2010-07-27 21:31:36