MY SQL Server的SELECT语句在我的C#中有当前的WHERE子句:
strQuery4_main += " WHERE ([Description] LIKE ";
strQuery4_main += "'" + txtbox_ReportBy_start.Text + "%" + "'";
strQuery4_main += " ) ";
如果我输入关键字
性质
在我的txtbox_ReportBy_start文本框中, 查询将搜索以名称' nature'开头的任何内容,这很好。
但如果我搜索关键词
自然之路
然后会出现错误消息
' - '附近的语法不正确。字符后面有未闭合的引号 字符串' AS []'。
我知道我应该用两个单引号来替换一个单引号,但是它应该如何在textbox值中起作用?
答案 0 :(得分:5)
在您的查询中使用参数。连锁查询也很容易SQL Injection。
strQuery4_main += " WHERE ([Description] LIKE @pDescription";
稍后使用命令对象执行:
yourCommandObject.Parameters.AddWithValue("@pDescription",
txtbox_ReportBy_start.Text +"%");
您可能会看到:Parameterizing Your SQL Queries: The RIGHT Way To Query A Database。
目前您收到错误,因为输入中的单引号未转义。您可以使用另一个单引号来逃避单引号。但是您应该始终考虑在查询中使用参数。