Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 临时查询中的转义单引号_C#_Mysql - Fatal编程技术网

C# 临时查询中的转义单引号

C# 临时查询中的转义单引号,c#,mysql,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服务器版本对应的手

我有以下疑问:

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行中使用near's Meat'的正确语法


使此查询工作的最佳方法是什么?

您应该改用参数,这样还可以防止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);

我没有足够的权限创建存储过程不要在字段或表名中使用空格,那么你就不需要那些愚蠢的引号了:P