Avant d'exécuter la commande, vous devez ouvrir la connexion
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();
}
N'oubliez pas d'inclure les commandes jetables dans une déclaration d'utilisation
MODIFIER En regardant votre code (pourquoi ne le mettez-vous pas ici tout de suite ?), on voit clairement où est l'erreur
cette ligne
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{3}';", username, host, password);
devrait être
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{2}';", username, host, password);
Il y a trois paramètres passés au format de chaîne, donc les index à utiliser pour les espaces réservés dans le string.format sont 0, 1 et 2.
Vous avez utilisé 3 pour le mot de passe et cela donne l'exception hors plage