ASP.Net SqlBulkCopy将一些文本数据类型值转换为指数值
bulkCopy.DestinationTableName = "TABLE NAME";
bulkCopy.ColumnMappings.Add("Mobilenumber", "Mobilenumber");
bulkCopy.WriteToServer(dr);
上面的代码将excel列移动数字文本数据类型插入数据库列mobilenumber varchar(100)
有些数字在没有任何变化的情况下插入,但有些数字作为指数值插入。
如果excel列的数据类型更改为Number且前导零为0,则不转换为指数,则值将插入到数据库表中。
我的要求是没有手动转换任何工作表数据类型(仅限工作表),我必须上传,因为我必须上传许多文件。 请,任何人都可以帮忙。
答案 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';";