我使用SqlBulkCopy從OleDbDataReader(包含xls中的數據)插入數據到mssql-2005我在OleDbDataReader上有一個包含存儲為文本的數字的cloumn(在xls中)

當我查看mssql數據時,我在該列中看到null所有其他列都移動正常。

鏈接文字

一般承認的答案

你需要在代碼中映射列...

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection))
        {
            bulkCopy.ColumnMappings.Add("ID", "ID");
            bulkCopy.ColumnMappings.Add("Email", "Email");
            bulkCopy.DestinationTableName = "tableName";
            bulkCopy.WriteToServer(ExcelReader);
        }

熱門答案

當一個批量從SQL Server複製到SQL Server時,源可以很好地指示到目標的數據類型。使用Excel,源會對數據類型進行猜測。您可能將Excel格式化為文本,但源(ODBC?)可能會查看前50行並猜測它是數字數據類型。即使列名匹配,如果數據類型不同,我懷疑列不會填充。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因