select * from product where product_name like '*金*'
这句sql语句,直接在Access数据库中执行正常,有结果。
但是在C# 代码里组装该sql语句,然后通过OleDb连接Access执行查询,却一直没有结果。
经过查阅资料发现:
这是因为运行这些SQL语句时所使用的数据库引擎语法不同所致,ANSI-89 SQL 语法,通配符为*。 ANSI-92 SQL 语法,通配符为“%”。
本文介绍了在C#中通过OleDb连接Access数据库时,使用LIKE通配符进行查询遇到的问题。当在Access数据库中直接执行SQL`select * from product where product_name like '*金*'`可以正常返回结果,但在C#代码中执行相同的查询却无结果。问题在于ANSI-89和ANSI-92 SQL语法中通配符的区别,前者使用*,后者使用%。因此,解决方法是将C#中的SQL语句中的*替换为%。
select * from product where product_name like '*金*'
这句sql语句,直接在Access数据库中执行正常,有结果。
但是在C# 代码里组装该sql语句,然后通过OleDb连接Access执行查询,却一直没有结果。
经过查阅资料发现:
这是因为运行这些SQL语句时所使用的数据库引擎语法不同所致,ANSI-89 SQL 语法,通配符为*。 ANSI-92 SQL 语法,通配符为“%”。
1万+

被折叠的 条评论
为什么被折叠?