使用SQL语句读取EXCEL数据,其中的有数字,读出后发现是空的。如果把单元格的格式改成文本就能读出来不知为什么。之前看到有人说在"Provider=Microsoft.Jet.OLEDB.4.0;""Data Source='';""Extended Properties=Excel 8.0;"这句话里加上IMEX=1就行,但是加上后会报错。
错误如下:
未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中。请各位大虾帮帮忙,小弟感激不尽。

解决方案 »

  1.   

    把excel中的格式去掉,或把你这一列换成string型,然后再读的时后判断强转一下类型
      

  2.   

    大哥,就是不想去改EXCEL的格式,EXCEL太多了。
      

  3.   

    采用ODBC读取Excel就是会有这样的问题,目前没有发现解决办法
    基本规律是ODBC会根据第一行的数据或前几行的数据进行判断,若同一列数据类型不一致,就会出现该问题,即使改了类型也会出现的,挺奇怪的。
    建议不采用ODBC读取,采用打开Excel进程读取的方式会好些(虽然性能不怎么样)。
      

  4.   

    感谢两位大哥关注,小弟已经找到了原因,只因为在Excel 8.0;IMEX=1少了单引号,所以报错了。现在来给分了,两位大哥平分吧