解决ADO.Net 读取 Excel 值为DBNull的问题

来源:互联网 发布:数据库技术研究方向 编辑:程序博客网 时间:2024/04/29 20:01

正常情况下大家的 ConnectionString 是错的 只要写成下面这样

"Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   &   strExcelFile   &   ";Extended   Properties= " "Excel   8.0;HDR=YES;IMEX=1 "

一般都是少了 IMEX=1  如果有这个还不行的话,,那么就是你的Excel默认设置的问题了请往下看

 

 

修改服务器的注册表

 

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel

 

将 TypeGuessRows 设为 0 即可

原理是他会自行猜测某列为什么类型,如果为0  即是不猜

一般情况下 比如你的值是

1

2

3

A

4

 

如果你的 TypeGuessRows = 3  那么 读到A 就会是Null 因为他默认将你这一列认为是数字  出现A 他解释不了

希望这个对你能有帮助