在adhoc查询中转义单引号

时间:2010-12-05 23:57:20

标签: c# mysql

我有以下查询:

MySqlCommand command = new MySqlCommand(
@"SELECT `Customer ID`, `First Name`, `Last Name`, `Role` 
  FROM `Contacts` WHERE `Customer ID` = '" + customerID + "'", connection);

如果客户ID中包含撇号(即Adam's Meat),则会收到错误消息:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'Meat'附近使用正确的语法

使此查询有效的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您应该使用参数,这样您也可以阻止SQL注入:

MySqlCommand command = new MySqlCommand(@"SELECT `Customer ID`, `First Name`, `Last Name`, `Role` FROM `Contacts` WHERE `Customer ID` = ?CostumerID", connection);
command.Parameters.Add("?CustomerID", customerID);