ADO.NET更新ACCESS碰到的怪异问题

开发环境:VS2005+ACCESS2007
驱动: Provider=Microsoft.Jet.OLEDB.4.0
使用 ADO.NET更新ACCESS时碰到一个怪异问题,不知道是 ADO.NET还是ACCESS或是连接字符串驱动程序的BUG.

例如使用模糊查询使用SELECT * From tablename WHERE fieldname LIKE '%aaa' 查询不到任何记录,但是使用
SELECT * From tablename WHERE fieldname LIKE '*aaa' 能够查询到所有记录.

当使用UPDATE tablename SET filedname='bbb' WHERE fieldname LIKE '*aaa' 做为CommandText的时候,调用
ExecuteNonQuery()执行更新操作的时候返回的行数竟然为0,数据库也没有任何的更新.但是直接在ACCESS的SQL视图中执行却提示能够更新.
而使用UPDATE tablename SET filedname='bbb' WHERE fieldname LIKE '%aaa' 做为CommandText的时候,调用
ExecuteNonQuery()执行更新操作的时候确可以更新成功,返回更新执行的行数.但是直接在ACCESS的SQL视图中执行却返回行数为0,不能正确执行更新.

虽然ACCESS的帮助中如是说:

请务必注意,ANSI SQL 中的通配符 (%) 和 (_) 只能在 Microsoft Access 数据库引擎和 Microsoft Office Access 2007 OLE DB Provider 中使用。如果通过 Microsoft Office Access 2007 或 DAO 使用,它们将被视为文字。

百思不得其解.望大家指教.

转载于:https://www.cnblogs.com/figo/archive/2008/04/25/1171609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值