找不到可安装的ISAM


读取excel数据 到 datagrid 出现:找不到可安装的ISAM       错误:
 
实在没有办法了 就仔细的查看了 一下数据链接字符串:
 string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Dir + "\\"+fileName + ";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;"; 

有对照了http://www.connectionstrings.com/ 上的实例发现字符串写法错误;漏了分号。

改为:
 string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Dir + "\\"+fileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";    就ok了 

 

EXCEL导入时,同一列中有数据和字符类型,出现导漏数据问题

这个是数据库驱动的原因造成的,你可以在数据库连接字符串中加上"IMEX=1",如:strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Path + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";
说明:HDR=表示数据有无标题行(yes/no),IMEX=1通知驱动程序始终将“互混”数据列作为文本读取,在这里需要清楚的是,系统在判断该字段(列)到底是数值还是文本时,是通过该列的前8条记录是否有文本数据,有则该列作为文本读取,否则,即使后面的记录有文本,也还是按数值读取(导致文本为空)。
修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的TypeGuessRows注册表值,可以将其改大些,如1000,这样在1000条记录前只要有文本,就不会出现文本为空的现象,具体情况要视你的数据而定。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM