【问题标题】:Parameters.AddWithValue not substituting placeholder text with actual valuesParameters.AddWithValue 没有用实际值替换占位符文本
【发布时间】:2012-11-27 09:22:19
【问题描述】:

我正在尝试在 MySQL 中使用参数化查询。这个理论看起来很简单,你可以像这样创建一个 MySqlCommand 类的新实例:

MySqlCommand command = new MySqlCommand();

将此对象的 CommandText 属性设置为带有如下占位符的 MySQL 查询:

command.CommandText = "INSERT INTO `myTable` (`myField`) VALUES('@bar');

使用 AddWithValue 方法将占位符文本替换为实际值:

command.Parameters.AddWithValue("@bar", "HelloWorld");

我认为它是这样工作的,但实际上“@bar”这个词最终被附加,而不是“HelloWorld”。

我做错了什么?

【问题讨论】:

  • 参数从不替换占位符文本。参数不是占位符文本 - 它们是:参数。这就是为什么以及如何参数解决诸如 SQL 注入和查询计划重用之类的问题。
  • @MarcGravell 抱歉,我不知道有什么不同!谢谢你

标签: c# .net mysql parameter-passing


【解决方案1】:

试试不用单引号

command.CommandText = "INSERT INTO `myTable` (`myField`) VALUES(@bar);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 2014-12-09
    • 2020-06-13
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多