Voordat u de opdracht uitvoert, moet u de verbinding openen
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();
}
Vergeet niet de wegwerpcommando's in te sluiten in een gebruiksverklaring
BEWERKEN Als je naar je code kijkt (waarom zet je het hier niet meteen?) is het duidelijk waar de fout zit
deze regel
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{3}';", username, host, password);
zou moeten zijn
this.COMMAND = String.Format("CREATE USER '{0}'@'{1}' IDENTIFIED BY '{2}';", username, host, password);
Er zijn drie parameters doorgegeven aan het tekenreeksformaat, dus de indexen die moeten worden gebruikt voor de tijdelijke aanduidingen in het tekenreeks.formaat zijn 0, 1 en 2.
U hebt 3 gebruikt voor het wachtwoord en dit geeft de uitzondering buiten bereik