MS ACCESS 2000, “查询”(切换到SQL视图)的 LIKE 子句中,不能使用 % ,可以使用 * (匹配 零个或多个字符)。
It is important to note that the ANSI SQL wildcards (%) and (_) are only available with Microsoft® Jet version 4.X and the Microsoft OLE DB Provider for Jet.They will be treated as literals if used through Microsoft Access or DAO.
详情请参考这儿:https://msdn.microsoft.com/en-us/library/bb221192(v=office.12).aspx
但是,
OLE DB 的 SQL LIKE 语句 只支持 %;
那么,想在应用程序里 用OLE DB访问 使用了LIKE和 * 的命名查询,总会失败的!
只能将就一下了,解决方法就是把Access 2000中的查询 写成用%的。
比如:
在ACCESS里新建一个查询:SELECT * from table WHERE table.field Like 'ctrl*',命名为query1。
那么,OleDbCommand 不论是 “select * from query1”,还是 “Execute query1”,
还是直接“query1”(but CommandType = CommandType.StoredProcedure;),
都不行。
因为,SELECT * from table WHERE table.field Like 'ctrl*' 在MS ACCESS软件里能工作,但在OLE DB里不能工作。
解决方法:改成 SELECT * from table WHERE table.field Like 'ctrl%'虽然在ACCESS里不工作,但OLE DB可以。