Parameters.AddWithValue不能用实际值替换占位符文本

4

我正在尝试使用带参数的MySQL查询。理论上看起来很简单,您只需创建MySqlCommand类的新实例即可:

MySqlCommand command = new MySqlCommand();

将该对象的CommandText属性设置为具有占位符的MySQL查询,如下所示:

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

使用 AddWithValue 方法将我的占位符文本替换为实际值:
command.Parameters.AddWithValue("@bar", "HelloWorld");

这是我的想法,但实际上单词“@bar”被追加了,而不是“HelloWorld”。我错在哪里了?

1
参数永远不会替换占位符文本。参数不是占位符文本 - 它们是:参数。这就是为什么和如何参数解决SQL注入和查询计划重用等问题的原因。 - Marc Gravell
@MarcGravell 抱歉,我不知道有区别!谢谢。 - JMK
1个回答

7

尝试不使用单引号包裹

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接