Преди да изпълните командата, трябва да отворите връзката
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 Statement
РЕДАКТИРАНЕ Поглеждайки кода си (защо не го поставите веднага?) става ясно къде е грешката
този ред
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 за паролата и това дава изключение извън обхвата