Asp.net
如何?參數和LIKE語句SQL
我正在編寫一個搜尋函式,並且已經想到了使用參數來防止或至少限制 SQL 注入攻擊的這個查詢。但是,當我通過我的程序執行它時,它不會返回任何內容:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')參數可以這樣使用嗎?還是它們僅在以下情況下有效:
SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'(<string>搜尋對像在哪裡)。編輯:我正在用 VB.NET 建構這個函式,這對你們貢獻的語法有影響嗎?
另外,我在 SQL Server 中執行了這個語句:
SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE%max%’)` 並返回結果。
您的 Visual Basic 程式碼如下所示:
Dim cmd as New SqlCommand("SELECT * FROM compliance_corner WHERE (body LIKE '%' + @query + '%') OR (title LIKE '%' + @query + '%')") cmd.Parameters.Add("@query", searchString)
好吧,我會選擇:
Dim cmd as New SqlCommand( "SELECT * FROM compliance_corner"_ + " WHERE (body LIKE @query )"_ + " OR (title LIKE @query)") cmd.Parameters.Add("@query", "%" +searchString +"%")