我的代码
后面出现异常You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''MachineSimulator''
var sqlParams = new[]
{
new MySqlParameter("@MachineSimulatorDb",GlobalVariables.MachineSimulatorDb),
new MySqlParameter("@CAMXMassagesTable" ,GlobalVariables.CamxmassagesTable)
};
using (var conn = new MySqlConnection(GlobalVariables.ConnectionString))
{
conn.Open();
using(var command = new MySqlCommand())
{
command.Connection = conn;
command.Parameters.AddRange(sqlParams);
command.CommandText = "CREATE DATABASE IF NOT EXISTS @MachineSimulatorDb;";
command.ExecuteNonQuery();
}
}
知道那里有什么问题吗?
谢谢
答案 0 :(得分:3)
MySQL可能不允许您将参数传递给create database
。尝试:
command.CommandText = string.Format("CREATE DATABASE IF NOT EXISTS `{0}`",
GlobalVariables.MachineSimulatorDb);
如果您使用的变量来自usafe源,您应该知道SQL注入的危险。
答案 1 :(得分:0)
当我使用MySqlParameter时,它正在使用?字符,而不是@字符。这可能是你的问题;例如:
new MySqlParameter("?MachineSimulatorDb");
但是Andomar可能是正确的,你不能使用MySqlParameter来提供新数据库的名称。