【问题标题】:How do I execute a MySQL parameterized query in C#?如何在 C# 中执行 MySQL 参数化查询?
【发布时间】:2011-01-26 08:11:13
【问题描述】:

当我在 MySQL 中运行这个命令时:

SELECT * FROM v
WHERE v.firstname LIKE '%a%' OR middlename LIKE '%a%' OR lastname LIKE '%a%'

它在结果集中返回 4 行。

但是当我在 C# 中使用参数运行相同的查询时,它只返回一个。

SELECT * FROM v
WHERE v.firstname  LIKE ?word OR middlename LIKE ?word OR lastname 

cmd.Parameters.AddWithValue("word", '%'+key+'%');

我也尝试了'%' ?word '%' 并仅添加参数(键),但这也不起作用。

我该如何进行这项工作?

【问题讨论】:

  • 如何运行 DbCommand?向我们展示 AddWithValue 之后的下一条语句。
  • 您是否尝试过在您的 C# 代码中运行硬编码的查询?
  • 别担心,问题不在其他地方查询。我为测试它的工作方式而制作的代码战标签。如果有人有问题,请销毁它们,我不反对它们。
  • 这个question 似乎已经解决了您遇到的问题。

标签: c# sql mysql parameters


【解决方案1】:

你是否使用类似的东西:

cmd.ExecuteScalar()

在您的代码中?它只会返回 1 条记录。试试

cmd.ExecuteReader()

改为。

【讨论】:

    【解决方案2】:

    看起来您在第二条 SQL 语句的末尾缺少“LIKE ?word”。

    【讨论】:

      【解决方案3】:

      WHERE v.firstname LIKE ?word OR middlename LIKE ?word OR lastname 您是否缺少姓氏 LIKE ?word ?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-15
        • 2021-08-30
        • 1970-01-01
        • 1970-01-01
        • 2019-09-22
        • 1970-01-01
        • 1970-01-01
        • 2010-10-13
        相关资源
        最近更新 更多