Добавление строки в таблицу MySql c#

Хочу реализовать консольную функцию регистрации пользователя в sql таблице делаю так:

MySqlConnection conn = new MySqlConnection(connStr);

conn.Open();

void Register()
{

    string regStr = "insert into userdata values(@login,@password,@score)";

    MySqlCommand regComm = new MySqlCommand(regStr, conn);

    Console.WriteLine("Срочно зарегистрироваться!");
    Console.WriteLine("Введите имя");
    string login = Convert.ToString(Console.ReadLine());
    Console.WriteLine("Введите пароль");
    int password = Convert.ToInt32(Console.ReadLine());
    int score = 0;


    regComm.Parameters.AddWithValue("@login", login);
    regComm.Parameters.AddWithValue("@password", password);
    regComm.Parameters.AddWithValue("@score", score);
}

но при дальнейшем просмотре таблицы в Сommand Line Client вижу что данные не добавились. (связь моего кода с таблицей проверял, не работает именно эта функция)


Ответы (1 шт):

Автор решения: Aarnihauta

Ваш код не работает, поскольку вы только открыли подключение, но не выполнили команду. Как я написал в комментариях последовательность такая:

  1. Открываем подключение
  2. Выполняем команду
  3. Закрываем подключение
string regStr = "insert into userdata values(@login,@password,@score)";

Console.WriteLine("Введите имя");
string login = Convert.ToString(Console.ReadLine());

Console.WriteLine("Введите пароль");
int password = Convert.ToInt32(Console.ReadLine());

int score = 0;

//Создаем объект MySqlConnection внутри using. Подключение само закроется после выполнения блока кода.
using ( MySqlConnection connection = new MySqlConnection(connStr) )
{
    //1. Открываем подключение к БД
    connection.Open();
    
    //Создаем объект класса MySqlCommand. В него передаем нашу sql-команду и подключение к БД
    MySqlCommand regCommand = new MySqlCommand(regStr, connection);

    regCommand.Parameters.AddWithValue("@login", login);
    regCommand.Parameters.AddWithValue("@password", password);
    regComm.Parameters.AddWithValue("@score", score);

    //2. Выполняем команду
    command.ExecuteNonQuery()
} //3. Подключение закроется после выполнения блока кода
→ Ссылка