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

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,则不转换为指数,则值将插入到数据库表中。

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

热门答案

通过使用以下连接字符串并在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';"; 


许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因