我有以下查询:
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'附近使用正确的语法
使此查询有效的最佳方法是什么?
答案 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);