我正在使用MySQL代码执行动态生成的C#查询。引发异常:
CREATE TABLE dump ("@employee_OID" VARCHAR(50)); {“您的SQL语法出现了错误;请检查与您的MariaDB服务器版本相对应的手册,以便在第1行使用”@employee_OID\“VARCHAR(50)”附近的正确语法“”
我不能从列名中跳过'@‘符号。
手动地,使用MySQL工作台,我可以在执行以下查询后执行它。
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_ query’;“查询,但它不起作用。怎么办?
发布于 2018-04-30 14:19:37
将命令更改为
string sqlQueryString = "CREATE TABLE dump (`@employee_OID` VARCHAR(50));";注意在有问题的名称(ALT+096)之前和之后有两个回标。
这将允许引擎忽略用于标识参数的字符@。
https://stackoverflow.com/questions/50102110
复制相似问题