use*_*647 0 c# sql sql-server textbox
MY SQL Server的SELECT语句在我的C#中有当前的WHERE子句:
strQuery4_main += " WHERE ([Description] LIKE ";
strQuery4_main += "'" + txtbox_ReportBy_start.Text + "%" + "'";
strQuery4_main += " ) ";
Run Code Online (Sandbox Code Playgroud)
如果我输入一个关键字
性质
在我的txtbox_ReportBy_start文本框中,查询将搜索任何以名称"nature"开头的内容,这很好.
但是如果我搜索关键词
大自然的道路
然后会出现错误消息说
' - '附近的语法不正确.字符串'AS []'后面的未闭合引号.
我知道我应该使用两个单引号来替换一个单引号,但是它应该如何在textbox值中起作用?
在查询中使用参数.连接查询也很容易出现SQL注入.
strQuery4_main += " WHERE ([Description] LIKE @pDescription";
Run Code Online (Sandbox Code Playgroud)
稍后用你的命令对象做:
yourCommandObject.Parameters.AddWithValue("@pDescription",
txtbox_ReportBy_start.Text +"%");
Run Code Online (Sandbox Code Playgroud)
您可能会看到:参数化SQL查询:查询数据库的正确方法.
目前您收到错误,因为输入中的单引号未被转义.您可以使用另一个单引号来逃避单引号.但是您应该始终考虑在查询中使用参数.