如何在C#textbox.Text值的SQL Server搜索中使用单引号实现LIKE%?

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值中起作用?

Hab*_*bib 5

在查询中使用参数.连接查询也很容易出现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查询:查询数据库的正确方法.

目前您收到错误,因为输入中的单引号未被转义.您可以使用另一个单引号来逃避单引号.但是您应该始终考虑在查询中使用参数.