如何在带参数的SQL查询中使用通配符

卵磷脂

假设我有一个基本查询,如下所示:

 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'。因此,如何正确设置要包含在查询参数中的通配符?任何帮助表示赞赏!

艾伦

首先,您的SqlParameter名字@name不是name

第二,我将移动您的通配符。

所以它看起来像这样:

string CommandText = "SELECT holiday_name "
               + "FROM holiday "
               + "WHERE holiday_name LIKE @name;"
Connection = new SqlConnection(ConnectionString);

try
{
  var escapedForLike = HolidatyTextBox.Text; // see note below how to construct 
  string searchTerm = string.Format("%{0}%", escapedForLike);
  Connection.Open();
  Command = new SqlCommand(CommandText, Connection);
  Command.Parameters.Add(new SqlParameter("@name", searchTerm));
  var results = Command.ExecuteScalar();
}

请注意,LIKE传递参数时需要格外小心,并且需要转义某些字符使用sql参数在SQL LIKE语句中转义特殊字符

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在带参数的SQL查询中使用通配符

来自分类Dev

带参数的 SQL 查询中的通配符

来自分类Dev

如何在bash中使用带通配符的异常?

来自分类Dev

如何在SQL查询中使用多个参数

来自分类Dev

如何在Shiny中使用查询参数

来自分类Dev

如何在属性中使用查询参数?

来自分类Dev

如何在Oracle SQL中使用字符列表通配符?

来自分类Dev

如何在Mule中使用带参数的存储过程

来自分类Dev

如何在Django中使用带参数的重定向?

来自分类Dev

如何在Scala中使用带参数的singelton(对象)?

来自分类Dev

如何在Django中使用带参数的重定向?

来自分类Dev

如何在Oracle SQL中使用声明的参数过滤SQL查询

来自分类Dev

如何在关系SQL查询中使用NOT

来自分类Dev

如何在SQL查询中使用if语句?

来自分类Dev

如何在SQL查询中使用Arraylist?

来自分类Dev

如何在SQL查询中使用VIEWS

来自分类Dev

如何在关系SQL查询中使用NOT

来自分类Dev

如何在SQL中使用子查询?

来自分类Dev

如何在 Django 中使用 NOT IN sql 查询

来自分类Dev

如何在Postgres查询窗口中使用参数测试我的即席SQL

来自分类Dev

如何在ado.net中使用输出参数并选择SQL Server存储过程的查询结果?

来自分类Dev

如何在ado.net中使用输出参数并选择SQL Server存储过程的查询结果?

来自分类Dev

我们如何在SQL查询列中使用iReport参数

来自分类Dev

如何在python的嵌入式sql查询中使用参数值?

来自分类Dev

如何在sed中使用Shell通配符?

来自分类Dev

如何在egrep中使用通配符?

来自分类Dev

如何在FILTER函数中使用通配符

来自分类Dev

如何在Python中使用通配符

来自分类Dev

如何在Makefile中使用通配符?

Related 相关文章

热门标签

归档