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 server 2 kに現れます
ACCESSでLIKEの使い方Accessでlikeのワイルドカードの使い方は「?」任意の単一文字を表す.「*」は0文字以上を表します.「#」はいずれかの数字を表すので、次のようになります.
select*from databasename where fieldname like '*XX*'

もとはSQL SERVERの中で%を使うので、ACCESSの中で**号を使うので、道理ですべてデータが探し出せません!しかし、VS 2005のTable Adapterでまた%を使うなら、*を使うのはだめです!
ここで私は主にSQL Serverの下の使い方を言います.覚えておけば、@の后ろはあなたが伝えるパラメータです.この@の后ろの内容がフロントから伝わってきた内容とそっくりかどうかは考えなくてもいいです.これは生きています.上の例のように、あいまいな検索をするときは、%番号が必要です.フロントに%番号を入れてはいけません.だからparameter[x]にあげます.valueが付与されると、本当にsql文に入れたい列をグループ化すればOKです.