我在ASP.NET中进行了一个非常简单的查询,但在插入LIKE子句后它停止工作.
例:
String sql = " SELECT *
FROM Products
WHERE ID = @MYID
AND Name LIKE '%@MYNAME%' ";
SqlCommand command = new SqlCommand(sql, cn);
command.Parameters.AddWithValue("@MYID", MYID.Text);
command.Parameters.AddWithValue("@MYNAME", MYNAME.Text);
Run Code Online (Sandbox Code Playgroud)
如果我删除LIKE它的工作原理.因此,我在考虑它与''引用?
Aar*_*ght 30
原始代码使SQL语句的文本与参数的内容混淆.您的代码应该看起来像这样:
string sql = "SELECT *
FROM Products
WHERE ID = @MyID
AND Name LIKE @MyName";
using (SqlCommand command = new SqlCommand(sql, cn))
{
command.Parameters.AddWithValue("@MyID", MyID.Text);
command.Parameters.AddWithValue("@MyName", "%" + MyName.Text + "%");
// Etc.
}
Run Code Online (Sandbox Code Playgroud)
该%标志必须参数值的一部分,使用绑定参数时,你不需要单引号的.
Ray*_*Ray -15
sql 语句应该如下所示:
String sql = " SELECT * FROM Products WHERE ID = @MYID AND Name LIKE '%' + @MYNAME + '%'";
Run Code Online (Sandbox Code Playgroud)
我不确定我完全理解您的评论,但您似乎想在查询中使用文本框中的值 - 也许这就是您想要做的:
String sql = " SELECT * FROM Products WHERE ID = @MYID AND Name LIKE '%' + text_box.Text + '%'";
Run Code Online (Sandbox Code Playgroud)
“text_box”将是文本框控件的实际 ID。