C# 使用mysql命令创建mysql数据库
我在尝试使用mysql命令创建数据库时遇到问题。我使用的代码是C# 使用mysql命令创建mysql数据库,c#,mysql,C#,Mysql,我在尝试使用mysql命令创建数据库时遇到问题。我使用的代码是 using (MySqlConnection con = connect_db()) { con.Open(); MySqlCommand cmd = new MySqlCommand("CREATE DATABASE @name;", con); cmd.Parameters.AddWithValue("@name", "fancydb"); try { cmd.Exe
using (MySqlConnection con = connect_db())
{
con.Open();
MySqlCommand cmd = new MySqlCommand("CREATE DATABASE @name;", con);
cmd.Parameters.AddWithValue("@name", "fancydb");
try
{
cmd.ExecuteNonQuery();
}
catch (Exception exc)
{
return;
}
cmd.Dispose();
con.Close();
con.Dispose();
}
当我试着运行这段代码时,我总是得到一个错误,说我有一个
“fancydb”附近的mysql语法错误
但是当我在命令中输入名称时,比如:
“createdatabasefacnydb;”
它就可以工作了。有人能解释一下为什么只有在我尝试使用参数时才会发生错误吗?我猜查询是按如下方式执行的
CREATE DATABASE "fancydb";
这是错误的 create语句不是数据操作语句。仅在此类操作中允许使用参数。create语句是一个数据定义语句。SqlCommand参数支持操作而不是操作 数据操作语言=
SELECT ... FROM ... WHERE ...
INSERT INTO ... VALUES ...
UPDATE ... SET ... WHERE ...
DELETE FROM ... WHERE ...
数据定义语言=
CREATE TABLE ...
DROP TABLE ... ;
ALTER TABLE ... ADD ... INTEGER;
这项工作:
cmd.CommandText = "exec ('CREATE DATABASE ' + @database)";
cmd.Parameters.AddWithValue("@database", restoreDB);
cmd.ExecuteNonQuery();
不它将作为
创建数据库fancydb执行代码>到目前为止,这是我见过的关于你能做什么和不能做什么的最简单答案。干杯