我正在编写一个搜索功能,并使用参数来考虑这个查询,以防止或至少限制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%')`并返回结果.
我View_Booking在sql server 2014中有一个View :
bkID bkSlot bkStatus
---- ------ --------
2 Lunch 1
4 Lunch 1
6 Dinner 0
7 Lunch 1
Run Code Online (Sandbox Code Playgroud)
在c#中,我使用了gridview并将其bkStatus转换为字符串,如:
<asp:Label ID="lblStatus" Text='<%# (Eval("bkStatus")+"" == "1") ? "Booked" : "Pending" %>'
... ></asp:Label>
bkID bkSlot bkStatus
---- ------ --------
2 Lunch Booked
4 Lunch Booked
6 Dinner Pending
7 Lunch Booked
Run Code Online (Sandbox Code Playgroud)
现在我正在使用此查询搜索View:
SELECT * FROM View_Booking
WHERE CAST(bkID AS NVARCHAR(MAX)) LIKE '%" + keyword + "%'
OR bkSlot LIKE '%"+keyword+"%'
OR bkStatus LIKE …Run Code Online (Sandbox Code Playgroud)