asp.net SqlParameter關于Like的傳參數(shù)無效問題
更新時間:2009年06月27日 21:58:31 作者:
用傳參方式模糊查詢searchName
按常規(guī)的思路,我們會這樣寫
String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like '%@Name%' ";
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};
但結(jié)果是查詢不到結(jié)果,跟蹤代碼也沒有發(fā)現(xiàn)錯誤,又不想用字符串拼接的方式(防止攻擊)。于是跟蹤了Sql的執(zhí)行,發(fā)現(xiàn)問題在于Sql給參數(shù)自動添加了單引號。
實際上在Sql,將like的代碼解析成為了 like '%'Sam'%' ",所以,你怎么查也都得不到想要的結(jié)果。
據(jù)此,我們可以將代碼改成:
String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like @Name ";
searchName = "%"+searchName+"%"; //注意不用加單引號,傳參到Sql語句中會自動添加
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};
這樣,就可以達到想要的查詢結(jié)果。
復制代碼 代碼如下:
String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like '%@Name%' ";
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};
但結(jié)果是查詢不到結(jié)果,跟蹤代碼也沒有發(fā)現(xiàn)錯誤,又不想用字符串拼接的方式(防止攻擊)。于是跟蹤了Sql的執(zhí)行,發(fā)現(xiàn)問題在于Sql給參數(shù)自動添加了單引號。
實際上在Sql,將like的代碼解析成為了 like '%'Sam'%' ",所以,你怎么查也都得不到想要的結(jié)果。
據(jù)此,我們可以將代碼改成:
復制代碼 代碼如下:
String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like @Name ";
searchName = "%"+searchName+"%"; //注意不用加單引號,傳參到Sql語句中會自動添加
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};
這樣,就可以達到想要的查詢結(jié)果。
相關文章
asp.net 實現(xiàn)自定義Hashtable (.net)
asp.net Hashtable自定義實現(xiàn)代碼,比較多,大家可以看下,測試。2009-06-06Entity Framework使用Code First模式管理事務
本文詳細講解了Entity Framework使用Code First模式管理事務的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03Asp.net webForm設置允許表單提交Html的方法
下面小編就為大家分享一篇Asp.net webForm設置允許表單提交Html的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12Asp.net中把Excel數(shù)據(jù)存儲至SQL Server中的具體實現(xiàn)方法
Asp.net中把Excel數(shù)據(jù)存儲至SQL Server中的具體實現(xiàn)方法,需要的朋友可以參考一下2013-06-06ASP.NET Core模仿中間件方式實現(xiàn)列表過濾功能
這篇文章介紹了ASP.NET Core模仿中間件方式實現(xiàn)列表過濾功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
這篇文章詳細介紹了無刷新文件上傳并顯示進度條的思路和代碼,有需要的朋友可以參考一下2013-06-06Asp.Mvc?2.0實現(xiàn)用戶注冊實例講解(1)
這篇文章主要介紹了Asp.Mvc?2.0如何實現(xiàn)用戶注冊,實例講解很細致,注冊功能是每個網(wǎng)站必不可少的組成部分,感興趣的的朋友可以參考下2015-08-08