C# OLEDB 读取 Excel 记录出现"标准表达式的类型不匹配"

使用OLEDB 进行 SELECT 操作时,出现 "标准表达式的类型不匹配" 的错误,原因是驱动解析 EXCEL 数据类型时,将文本识别为数字,导致 WHERE 子句中的条件字段也给定的字符类型不匹配。

如:select top 1 * from [Sheet1$] where phone="888888"


在连接字符串中,加上 Extended Properties = "Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text” 依然出错。


根据原理,驱动是默认遍历前8行数据来识别数据类型,因此想到在第一行加入文本,如所有数据列的值全设为 "TEXT",由于对数据进行只读操作,并指定查询条件,所以增加的这一行对结果没有任何影响。


增加此文本行后,经测试正常返回结果,处理成功。


参考:

http://blog.csdn.net/aking8736/article/details/6718768

你可能感兴趣的:(Excel)