具有@符号的列名称

时间:2018-04-30 14:00:25

标签: c# mysql special-characters

我正在使用C#代码执行动态生成的MySQL查询。抛出异常:

CREATE TABLE dump ("@employee_OID" VARCHAR(50)); 
  

" {"您的SQL语法错误;检查与您的MariaDB服务器版本对应的手册,以便在' \" @employee_OID \"附近使用正确的语法。 VARCHAR(50))'在第1行"}"

我不能跳过' @ '列名称中的符号。

手动,使用MySQL Workbench,我可以在执行以下查询后执行它。

SET sql_mode='ANSI_QUOTES';

以下是我能够制作的代码:

MySqlConnection conn = null;
MySqlCommand cmd = null;
string mySQLConnectionString = ConfigurationManager.AppSettings["MySQLAutomationServerConnectionString"];
//Dynamically getting generated using some other code
string sqlQueryString = "CREATE TABLE dump ("@employee_OID" VARCHAR(50));";

try
{
    conn = new MySqlConnection(mySQLConnectionString);
    conn.Open();
    cmd = new MySqlCommand(sqlQueryString, conn);
    executionResultStatus = cmd.ExecuteNonQuery();

}
catch (MySqlException ex)
{
    Console.WriteLine("MySQL Exception: " + ex.Message.ToString());
}

我试图执行" SET sql_mode =' ANSI_QUOTES';"在执行此代码之前使用代码执行此查询之前的查询,它不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:1)

将您的命令更改为

string sqlQueryString = "CREATE TABLE dump (`@employee_OID` VARCHAR(50));";

注意有问题的名字(ALT + 096)之前和之后有两次反推 这将允许您的引擎忽略用于识别参数的字符@ / p>