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合法嗎? 是的,了解原因