我使用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合法吗? 是的,了解原因