在寫專案的時候遇到乙個問題,sql 語句進行 like in 引數化,按照正常的方式是無法實現的
我們一般的思維是:
like 引數:
string strsql = "select * from person.address where city like '%@add%'";
sqlparameter parameters=new sqlparameter[1];
parameters[0] = new sqlparameter("@add", "bre");
in 引數
string strsql = "select * from person.address where addressid in (@add)";
sqlparameter parameters = new sqlparameter[1];
parameters[0] = new sqlparameter("@add", "343,372,11481,11533,11535,11755,11884,12092,12093,12143");
可是這樣放在程式裡面是無法執行的,即使不報錯,也是搜尋不出來結果的,
去網上搜尋也沒有乙個明確的答案,經過反覆試驗,終於解決這個問題
正確解法如下:
like 引數
string strsql = "select * from person.address where city like '%'+ @add + '%'";
sqlparameter parameters=new sqlparameter[1];
parameters[0] = new sqlparameter("@add", "bre");
in 引數
string strsql = "exec('select * from person.address where addressid in ('+@add+')')";
sqlparameter parameters = new sqlparameter[1];
parameters[0] = new sqlparameter("@add", "343,372,11481,11533,11535,11755,11884,12092,12093,12143");
引數化SQL中 Like 和 In 的寫法
like 引數 string strsql select from person.address where city like add sqlparameter parameters new sqlparameter 1 parameters 0 new sqlparameter add bre ...
C 引數化SQL語句中的like和in
在寫專案的時候遇到乙個問題,sql 語句進行 like in 引數化,按照正常的方式是無法實現的 我們一般的思維是 like 引數 string strsql select from person.address where city like add sqlparameter parameters...
sql in 和 exist的區別
詳見 select from a where id in select id from b 以上查詢使用了in語句,in 只執行一次,它查出b表中的所有id欄位並快取起來.之後,檢查a表的id是否與b表中的id相等,如果相等則將a表的記錄加入結果集中,直到遍歷完a表的所有記錄.它的查詢過程類似於以下...