当参数为模糊查询时,需要按以下方法达到预期效果
1
2
3
4
5
6
7
8
|
String name =
"as"
;
String sql =
"select * FROM tbl_table where Name like '%@Name%' "
;
SqlParameter parameter=
new
SqlParameter(
"@Name"
, name) ;
//这样不管是SqlCommand或者SqlAdapter都不能获取这个@Name
String name =
"as"
;
String sql =
"select * FROM tbl_table where Name like @Name "
;
searchName =
"%"
+searchName+
"%"
;
//不用单引号,传到sql语句会自动添加
SqlParameter parameter =
new
SqlParameter(
"@Name"
, name) ;
|
以上情况在sql server2k里面出现
在ACCESS中LIKE的用法
Access里like的通配符用法是这样:
“?”表示任何单一字符; “*”表示零个或多个字符; “#”表示任何一个数字
所以应该是:
1
|
select
*
from
databasename
where
fieldname like
'*XX*'
|
原来在SQL SERVER 里是用%%的,在ACCESS里是用**号的,怪不得都找不到数据!
但如果在VS2005的TableAdapter里又要用%%,用* 不行!
这里我主要还是说下SQL Server下的用法,只要记住一点,@后面就是你要传的参数,至于这个@后面的内容是否与前台传过来的内容一模一样,不需要去考虑,这块是活的,就像上面的例子,当模糊查询的时候,就必须有%号啊,总不能让前台传进来%号吧,所以在给parameter[x].value赋值的时候,组出来一个真正想放进sql语句里的串就OK了。
本文转自 我不会抽烟 51CTO博客,原文链接:http://blog.51cto.com/zhouhongyu1989/1341399,如需转载请自行联系原作者