我正在使用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';"在执行此代码之前使用代码执行此查询之前的查询,它不起作用。我该怎么办?
答案 0 :(得分:1)
将您的命令更改为
string sqlQueryString = "CREATE TABLE dump (`@employee_OID` VARCHAR(50));";
注意有问题的名字(ALT + 096)之前和之后有两次反推 这将允许您的引擎忽略用于识别参数的字符@ / p>