Bevor Sie den Befehl ausführen, müssen Sie die Verbindung öffnen
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();
}
Vergessen Sie nicht, die verfügbaren Befehle in eine Using-Anweisung einzuschließen
BEARBEITEN Wenn Sie sich Ihren Code ansehen (warum fügen Sie ihn nicht gleich hier ein?), ist klar, wo der Fehler liegt
diese Zeile
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{3}';", username, host, password);
sollte
seinthis.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{2}';", username, host, password);
Es werden drei Parameter an das String-Format übergeben, daher sind die für die Platzhalter im string.format zu verwendenden Indizes 0, 1 und 2.
Sie haben 3 für das Passwort verwendet und dies gibt die Ausnahme außerhalb des gültigen Bereichs