0

我使用 SqlBulkCopy 将数据从 OleDbDataReader(包含来自 xls 的数据)插入到 mssql-2005 我在 OleDbDataReader 上有一个 cloumn,其中包含存储为文本的数字(在 xls 中)

当我查看 mssql 数据时,我在该列中看到 null,所有其他列都可以移动。

链接文本

4

2 回答 2

3

您需要像代码中那样映射列...

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection))
        {
            bulkCopy.ColumnMappings.Add("ID", "ID");
            bulkCopy.ColumnMappings.Add("Email", "Email");
            bulkCopy.DestinationTableName = "tableName";
            bulkCopy.WriteToServer(ExcelReader);
        }
于 2009-12-01T11:49:58.370 回答
1

当从 SQL Server 批量复制到 SQL Server 时,源能够很好地向目标指示数据类型。使用 Excel,来源会猜测数据类型。您可能将 Excel 格式化为文本,但源(ODBC?)可能会查看前 50 行并猜测它是数字数据类型。即使列名匹配,如果数据类型不同,我怀疑该列没有被填充。

于 2011-10-20T13:59:15.323 回答