我的代码有一个错误:“您的sql语法有一个错误;在第1行的“mysqldatabase”附近,检查与您的mysql服务器版本对应的手册,以获取要使用的正确语法
string connectionString = string.Format("SERVER = {0}; Port = {1}; User = {2}; Password = {3}", server, port, username, password);
MySqlConnection conn = new MySqlConnection(connectionString);
MySqlCommand cmd;
try
{
conn.Open();
string createDBCommand = "CREATE DATABASE IF NOT EXISTS @database";
cmd = new MySqlCommand(createDBCommand, conn);
cmd.Parameters.AddWithValue("@database", database);
cmd.ExecuteNonQuery();
conn.Close();
}
这是在executenonquery()语句中产生错误的代码。数据库是从class.properties.default值提交的值。当前是字符串“mysqldatabase”
我目前使用的是MySQLServer5.7,使用的create语句与文档中的示例类似,只是使用了一个参数。
1条答案
按热度按时间anhgbhbe1#
“您的sql语法有错误;在第1行的“mysqldatabase”附近,检查与您的mysql服务器版本对应的手册,以获取要使用的正确语法
注意,这些不是mysqldatabase的双引号,而是两个单引号。这给了我们一个重要的提示。发生错误的语句的子字符串在错误消息中用单引号括起来。也就是说,子字符串读取'mysqldatabase',另一对单引号在该子字符串中。
在dbms看来,您的查询
这里不允许单引号。不过,如果我们讨论的是字符串形式的值,他们是对的。
参数化查询在替换对象名(在ddl语句中)时不能正常工作,它们不是用来替换对象名的。在这里,您必须自己将名称连接到查询的字符串。再加上检查数据是否正常。