【问题标题】:Struggling with Escaping Single Quotes in SQL Query C# QODBC努力在 SQL 查询 C# QODBC 中转义单引号
【发布时间】:2018-09-14 17:48:39
【问题描述】:

我正在尝试运行包含单引号的 SQL 查询。我正在使用 qodbc,当我尝试使用单引号成功时:

  1. 使用反斜杠

  2. 使用双单引号

代码:

string getQBInventory = "SELECT ListId, Name, QuantityOnHand from Item WHERE Name LIKE '"+ "PMI / 8\"X25''" + "%' AND IncomeAccountRefFullName <> 'Job Income' AND isActive <> 0";

知道我做错了什么吗?

我正在查询以下内容:

PMI/8"X25'

【问题讨论】:

  • 您应该使用参数化查询来避免此类问题。
  • 刚刚尝试,仍然出现错误。还有什么我可以尝试的。谢谢。

标签: c# sql select quotes double-quotes


【解决方案1】:

这将对您有所帮助。 CommandType 必须是 Text

string getQBInventory = "SELECT ListId, Name, QuantityOnHand from Item WHERE Name LIKE ? AND IncomeAccountRefFullName <> ? AND isActive <> ?"

OdbcCommand exe = new OdbcCommand(getQBInventory, conn);
exe.CommandType = CommandType.Text;

exe.Parameters.Add("P1", OdbcType.VarChar).Value = "PMI/8\"X25\'\'";
exe.Parameters.Add("P2", OdbcType.VarChar).Value = "Job Income";
exe.Parameters.Add("P3", OdbcType.Int).Value = 0;

【讨论】:

  • 错误:“字符串 'PMI/8"X25" 后的未闭合引号。'PMI/8"X25" 附近的语法不正确。感谢您的帮助,但是我在执行后收到了上面的消息。
  • @TrayvhonMcCall 我更新了答案(字符串值格式)。请使用此值重试。 exe.Parameters.Add("P1", OdbcType.VarChar).Value = "PMI/8\"X25\'\'";
  • 好的,现在重试我的查询在末尾寻找额外的单引号
  • 我建议您使用参数进行查询,因为这样更安全。要检查任何字符串与 SQL 的兼容性,请尝试使用字符串执行 select 语句。它将在您的字符串中显示错误。例如选择'PMI/8"X25'''
  • 如果有用,请点赞/标记为答案,以便将来的用户可以从这里参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
相关资源
最近更新 更多