有些access语句在数据库中可以执行,但是在C#上又不能执行,比如模糊查询-like
2012-12-19 16:43
981 查看
access上运行的语句
select * From a where aa like '1*'; //模糊查询1为开头的数据
C# 上运行的语句 就是把上面的*改成%
select * From a where aa like '1%'; //模糊查询1为开头的数据
具体原因,我查了一下资料:
要进行模糊查找,则必须使用通配符,ACCESS库的通配符和SQL SERVER的通配符不一样。
ACCESS库的通配符为:
* 与任何个数的字符匹配。
? 与任何单个字母的字符匹配
在SQL Server中的通配符为:
% 与任何个数的字符匹配
- 与单个字符匹配
正确写法应是:
在C#里写应写成 Select * From Table Where Name Like '%jacky%'
Select * From Table Where Name Like '_jacky_'
Access内测试语句应写成 : Select * From Table Where Name Like '*jacky*'
Select * From Table Where Name Like '?jacky?'
一般我们在程序里写模糊查询时都是写成如下这样:
Select * from table where txtTitle like '%脚本之家%'
不管连接的数据库是ACCESS还是SQL Server
但是最近写程序时总出现语句正确,但就是出不来结果的情况,比如:手动简单设置服务器安全,及引发的思考,这里提到我写服务查询时总是出不来结果的情况,时间长了,出这问题多了,我发现一个问题,如果按上面的写法写到程序里都是正确的,但是如果用ACCESS里的“查询”功能时会发现,同样的代码却运行不了,为什么呢,为什么在程序里调用时却是正常的,在网上搜索,OK,看来这年头有问题就应该找google或baidu,原来ACCESS里的“查询”不支持像这样的模糊查询 like '%柳永法%',他里面相当于%的是通配符:*,所以要改为
Select * from table where txtTitle like '*脚本之家*'
在SQL Server的查询分析器里还是支持正常的SQL语句的写法的,不知这ACCESS为哈这样尼。
还有我经常用ACCESS的“查询”功能直接在数据库里操作为什么用了那么长时间也没发现这个问题?是因为发现问题时用程序又可以就没管他了,还是根本就没发现过?我想我是发现过,可能项目太就紧,所以没有去研究他吧。
select * From a where aa like '1*'; //模糊查询1为开头的数据
C# 上运行的语句 就是把上面的*改成%
select * From a where aa like '1%'; //模糊查询1为开头的数据
具体原因,我查了一下资料:
要进行模糊查找,则必须使用通配符,ACCESS库的通配符和SQL SERVER的通配符不一样。
ACCESS库的通配符为:
* 与任何个数的字符匹配。
? 与任何单个字母的字符匹配
在SQL Server中的通配符为:
% 与任何个数的字符匹配
- 与单个字符匹配
正确写法应是:
在C#里写应写成 Select * From Table Where Name Like '%jacky%'
Select * From Table Where Name Like '_jacky_'
Access内测试语句应写成 : Select * From Table Where Name Like '*jacky*'
Select * From Table Where Name Like '?jacky?'
一般我们在程序里写模糊查询时都是写成如下这样:
Select * from table where txtTitle like '%脚本之家%'
不管连接的数据库是ACCESS还是SQL Server
但是最近写程序时总出现语句正确,但就是出不来结果的情况,比如:手动简单设置服务器安全,及引发的思考,这里提到我写服务查询时总是出不来结果的情况,时间长了,出这问题多了,我发现一个问题,如果按上面的写法写到程序里都是正确的,但是如果用ACCESS里的“查询”功能时会发现,同样的代码却运行不了,为什么呢,为什么在程序里调用时却是正常的,在网上搜索,OK,看来这年头有问题就应该找google或baidu,原来ACCESS里的“查询”不支持像这样的模糊查询 like '%柳永法%',他里面相当于%的是通配符:*,所以要改为
Select * from table where txtTitle like '*脚本之家*'
在SQL Server的查询分析器里还是支持正常的SQL语句的写法的,不知这ACCESS为哈这样尼。
还有我经常用ACCESS的“查询”功能直接在数据库里操作为什么用了那么长时间也没发现这个问题?是因为发现问题时用程序又可以就没管他了,还是根本就没发现过?我想我是发现过,可能项目太就紧,所以没有去研究他吧。
相关文章推荐
- ACCESS模糊查询like的解决方法&&SQL查询语句通配符问题
- 请问在数据库中怎样用模糊查询查找含有通配符的项,比如 like ' ' 我要查找含有“%”的项,怎么查?
- 数据库-Oracle【SQL模糊查询语句(like) 及SQL Server 2005 导入和导出向导】
- 关于C#中用access做数据库,使用like语句的问题
- SQL查询语句通配符与ACCESS模糊查询like的解决方法
- SQL查询语句通配符与ACCESS模糊查询like的解决方法
- 对于access,在数据库当中建立模糊查询时,这时用到的通配符号是“*”,而如果在VB中使用查询语句进行模糊查询时,这时就要用“%”
- SQL查询语句通配符与ACCESS模糊查询like的解决方法
- 结合.net开发 谈谈 access 中 模糊查询语句 like的用法
- SQL查询语句通配符与ACCESS模糊查询like的解决方法
- C# 简单连接数据库并执行SQL查询语句
- ACCESS模糊查询like的解决方法&&SQL查询语句通配符问题
- 关于C#中用access做数据库,使用like语句的问题
- 关于C#中用access做数据库,使用like语句的问题(转)
- 数据库-Oracle【SQL模糊查询语句(like) 及SQL Server 2005 导入和导出向导】
- SQL查询语句通配符与ACCESS模糊查询like的解决方法
- mybatis执行查询语句,可以在plsql中查询数据,但是在程序中查询不到
- ACCESS:跨数据库查询的SQL语句
- 数据库学习 - like(模糊查询)
- 当只有一个输入条件的时匹配数据库表中多个字段模糊查询的SQL语句