ADO.net 关于SqlParameter 遇到Like问题如何解决

当参数为模糊查询时,需要按以下方法达到预期效果

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的通配符用法是这样:    
?”表示任何单一字符; “*”表示零个或多个字符; “#”表示任何一个数字    
所以应该是:    

select*from databasename where fieldname like '*XX*'

原来在SQL SERVER 里是用%%的,在ACCESS里是用**号的,怪不得都找不到数据!    
但如果在VS2005的TableAdapter里又要用%%,用* 不行!

这里我主要还是说下SQL Server下的用法,只要记住一点,@后面就是你要传的参数,至于这个@后面的内容是否与前台传过来的内容一模一样,不需要去考虑,这块是活的,就像上面的例子,当模糊查询的时候,就必须有%号啊,总不能让前台传进来%号吧,所以在给parameter[x].value赋值的时候,组出来一个真正想放进sql语句里的串就OK了。

你可能感兴趣的:(@,通配符,sql语句,like,单引号)