SQL In和Like 引數化

2021-06-21 11:35:53 字數 1106 閱讀 6090

在寫專案的時候遇到乙個問題,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表的所有記錄.它的查詢過程類似於以下...