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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值