1

我试图用 C# 做一个注册声明。显然我做不到。我不完全知道问题是什么。话虽如此,这里有一个片段:

MySqlConnection Connection = 
 new MySqlConnection("SERVER=localhost;UID=root;");
MySqlCommand Command = 
 new MySqlCommand("CREATE USER 'testuser'@'localhost' 
 IDENTIFIED BY 'superpassword';", Connection);
Command.ExecuteNonQuery();
4

1 回答 1

1

执行命令前,需要打开连接

using(MySqlConnection Connection = new MySqlConnection("SERVER=localhost;UID=root;"))
using(MySqlCommand Command = new MySqlCommand("CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'superpassword';", Connection))
{
    Connection.Open();
    Command.ExecuteNonQuery();
}

不要忘记将一次性命令包含在 Using 语句中

编辑查看您的代码(为什么不立即放在这里?)很明显错误在哪里

这条线

this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{3}';", username, host, password); 

应该

this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{2}';", username, host, password); 

有三个参数传递给字符串格式,因此在 string.format 中用于占位符的索引是 0、1 和 2。
您使用 3 作为密码,这给出了超出范围的异常

于 2014-05-04T20:07:09.273 回答