假设我有一个基本查询,如下所示:
SELECT holiday_name
FROM holiday
WHERE holiday_name LIKE %Hallow%
这在我的 sql 查询窗格中执行良好并返回“万圣节”。当我尝试在代码中使用带有通配符 '%' 字符的参数时,就会出现我的问题。
SqlConnection Connection = null;
SqlCommand Command = null;
string ConnectionString = ConfigurationManager.ConnectionStrings["SQLdb"].ConnectionString;
string CommandText = "SELECT holiday_name "
+ "FROM holiday "
+ "WHERE holiday_name LIKE %@name%";
Connection = new SqlConnection(ConnectionString);
try
{
Connection.Open();
Command = new SqlCommand(CommandText, Connection);
Command.Parameters.Add(new SqlParameter("name", HolidayTextBox.Text));
var results = Command.ExecuteScalar();
}
catch (Exception ex)
{
//error stuff here
}
finally
{
Command.Dispose();
Connection.Close();
}
这会引发不正确的语法错误。我试过像这样将“%”移动到我的参数中
Command.Parameters.Add(new SqlParameter("%name%", HolidayTextBox.Text));
但随后我收到一条错误消息,提示我尚未声明标量变量“@name”。那么,如何正确格式化通配符以包含在查询参数中?任何帮助表示赞赏!