欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net SqlParameter關(guān)于Like的傳參數(shù)無(wú)效問(wèn)題

 更新時(shí)間:2009年06月27日 21:58:31   作者:  
用傳參方式模糊查詢searchName
按常規(guī)的思路,我們會(huì)這樣寫
復(fù)制代碼 代碼如下:

String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like '%@Name%' ";
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};

但結(jié)果是查詢不到結(jié)果,跟蹤代碼也沒(méi)有發(fā)現(xiàn)錯(cuò)誤,又不想用字符串拼接的方式(防止攻擊)。于是跟蹤了Sql的執(zhí)行,發(fā)現(xiàn)問(wèn)題在于Sql給參數(shù)自動(dòng)添加了單引號(hào)。
實(shí)際上在Sql,將like的代碼解析成為了 like '%'Sam'%' ",所以,你怎么查也都得不到想要的結(jié)果。

據(jù)此,我們可以將代碼改成:
復(fù)制代碼 代碼如下:

String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like @Name ";
searchName = "%"+searchName+"%"; //注意不用加單引號(hào),傳參到Sql語(yǔ)句中會(huì)自動(dòng)添加
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};

這樣,就可以達(dá)到想要的查詢結(jié)果。

相關(guān)文章

最新評(píng)論