Innan du utför kommandot måste du öppna anslutningen
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();
}
Glöm inte att bifoga engångskommandona i ett Användande uttalande
REDIGERA Om du tittar på din kod (varför lägger du inte in här omedelbart?) är det tydligt var felet är
denna rad
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{3}';", username, host, password);
bör vara
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{2}';", username, host, password);
Det finns tre parametrar som skickas till strängformatet, så indexen som ska användas för platshållarna i string.format är 0, 1 och 2.
Du använde 3 för lösenordet och detta ger undantaget utanför intervallet