C#如何构造参数查询类SQL%?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我正在尝试为C#中的参数查询构建SQL,该查询将包含LIKE %%命令。

这里是我想要获得的(请注意,数据库是Firebird)

var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%?%'", TABLE, NAME);
 cmd.Parameters.AddWithValue(NAME, "JOHN");

现在,我尝试了每一个排列,使参数工作,我尝试;

  • 添加%参数的字符, 参数:AddWithValue(名称“%”+“john”+“%”);
  • or cmd.Parameters.AddWithValue(NAME, "'%" + "JOHN" + "%'");

我似乎无法让它工作,我如何使用一个参数,以使类似的查询工作。

提问于
用户回答回答于

查询中的字符串文本中不能包含参数。使整个值成为参数,并将通配符添加到字符串中:

var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE ?", TABLE, NAME);
Cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
用户回答回答于
var SQL = string.Format("SELECT * FROM {0} WHERE {1} LIKE '%' + ? + '%'", TABLE, NAME);
Cmd.CommandText = SQL;
Cmd.Parameters.Add("?", SqlDbType.VarChar, 50).Value = "JOHN";

扫码关注云+社区