【发布时间】: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