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

JMK*_*JMK 4 .net c# mysql parameter-passing

我尝试使用MySQL的参数化查询.理论看起来非常简单,您可以像这样创建一个MySqlCommand类的新实例:

MySqlCommand command = new MySqlCommand();
Run Code Online (Sandbox Code Playgroud)

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

command.CommandText = "INSERT INTO `myTable` (`myField`) VALUES('@bar');
Run Code Online (Sandbox Code Playgroud)

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

command.Parameters.AddWithValue("@bar", "HelloWorld");
Run Code Online (Sandbox Code Playgroud)

这就是我认为它的工作方式,但实际上"@bar"这个词最终会被追加,而不是"HelloWorld".

我究竟做错了什么?

Joh*_*Woo 7

尝试不用单引号包装

command.CommandText = "INSERT INTO `myTable` (`myField`) VALUES(@bar);
Run Code Online (Sandbox Code Playgroud)