Server的SELECT语句在我的C#中具有当前WHERE子句:
strQuery4_main += " WHERE ([Description] LIKE ";
strQuery4_main += "'" + txtbox_ReportBy_start.Text + "%" + "'";
strQuery4_main += " ) ";如果我输入关键字
性质
在我的txtbox_ReportBy_start文本框中,查询将搜索任何以“本质”开头的内容,这很好。
但如果我搜查凯奥拉
性质的路径
则会出现错误消息,即:
在“-”附近不正确的语法。字符串'AS‘后面的未闭合引号。
我知道我应该使用两个单引号来替换一个单引号,但是在textbox值中应该如何做呢?
发布于 2014-07-10 18:33:22
在查询中使用参数。连在一起的查询也很容易使用SQL注入。
strQuery4_main += " WHERE ([Description] LIKE @pDescription";稍后使用命令对象执行以下操作:
yourCommandObject.Parameters.AddWithValue("@pDescription",
txtbox_ReportBy_start.Text +"%");你可以看到:参数化SQL查询:查询数据库的正确方法。
当前,由于输入中的单引号没有转义,所以您正在获取错误。您可以使用另一个单引号转义单引号。但是,您应该始终考虑在查询中使用参数。
https://stackoverflow.com/questions/24683817
复制相似问题