ASP.Net SqlBulkCopy将一些文本数据类型值转换为指数值

时间:2011-11-22 13:44:22

标签: asp.net sqlbulkcopy

ASP.Net SqlBulkCopy将一些文本数据类型值转换为指数值

bulkCopy.DestinationTableName = "TABLE NAME";
bulkCopy.ColumnMappings.Add("Mobilenumber", "Mobilenumber");
bulkCopy.WriteToServer(dr);

上面的代码将excel列移动数字文本数据类型插入数据库列mobilenumber varchar(100)

有些数字在没有任何变化的情况下插入,但有些数字作为指数值插入。

如果excel列的数据类型更改为Number且前导零为0,则不转换为指数,则值将插入到数据库表中。

我的要求是没有手动转换任何工作表数据类型(仅限工作表),我必须上传,因为我必须上传许多文件。 请,任何人都可以帮忙。

1 个答案:

答案 0 :(得分:0)

使用以下连接字符串并在Jet和ACE的注册表中更改TypeGuessRows = 0的设置。

ExelconnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filname + ";Extended Properties=\"Excel 8.0;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0;\"";


ExelconnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filname + ";Extended Properties='Excel 12.0;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0';";