C# .NET WinForms: Регистрация пользователей в базе данных

Регистрация пользователя в приложении с использованием базы данных — простой, но важный процесс. В этом уроке мы рассмотрим реализацию регистрации пользователя в базе данных через приложение Windows Forms. Код и домашнее задание доступны на сайте itprager.com (ссылка в описании).

Подготовка базы данных

Необходимо подготовить таблицу в базе данных. Предположим, что база данных и таблица users уже созданы. Добавьте в таблицу поля для имени и фамилии пользователя.

В MySQL Workbench откройте таблицу users. Добавьте два поля:

  • name (VARCHAR(100)): поле для имени пользователя.
  • surname (VARCHAR(100)): поле для фамилии пользователя.

Установите кодировку полей в utf-8. Тип данных VARCHAR ограничен 255 символами. Сохраните изменения.

Обработка регистрации пользователя

В Visual Studio, в классе RegisterForm, создадим обработчик события для кнопки «Зарегистрироваться». Обработчик будет извлекать данные из полей формы, проверять их валидность и добавлять пользователя в базу данных.

Создадим объект класса Db для работы с базой данных:

Db db = new Db();

Используем класс MySqlCommand для выполнения SQL-запроса. Подключите using MySql.Data.MySqlClient;.

Создадим объект MySqlCommand:

MySqlCommand command = new MySqlCommand();

SQL-запрос для добавления пользователя:

INSERT INTO users (login, password, name, surname) VALUES (@login, @password, @name, @surname);

Запрос использует параметры для предотвращения SQL-инъекций. Подставим значения из полей формы:

command.Parameters.AddWithValue("@login", loginField.Text);
command.Parameters.AddWithValue("@password", passwordField.Text);
command.Parameters.AddWithValue("@name", nameField.Text);
command.Parameters.AddWithValue("@surname", surnameField.Text);

Откроем и закроем соединение с базой данных:

db.openConnection();
// ... выполнение запроса ...
db.closeConnection();

Выполним запрос и проверим результат:

if (command.ExecuteNonQuery() == 1)
{
    MessageBox.Show("Аккаунт был создан");
}
else
{
    MessageBox.Show("Аккаунт не был создан");
}

Валидация данных

Добавим проверку на пустые поля имени и фамилии:

if (nameField.Text == "" || surnameField.Text == "")
{
    MessageBox.Show("Введите имя и фамилию");
    return;
}

Аналогично, добавьте проверки для других полей.

Функция IsUserExist проверяет уникальность логина:

public bool IsUserExist(string login)
{
    // ... код для проверки существования пользователя в базе данных ...
    return true; // true - пользователь существует, false - нет
}

Вызов функции перед добавлением пользователя:

if (IsUserExist(loginField.Text))
{
    MessageBox.Show("Такой логин уже есть");
    return;
}

Теперь регистрация корректно обрабатывает пустые поля и проверяет уникальность логина.

В этом уроке мы научились регистрировать пользователей в базе данных через приложение Windows Forms, включая валидацию данных и проверку уникальности логина. Процесс включает создание и обработку SQL-запроса, подключение к базе данных, обработку результатов и обратную связь пользователю. Система обеспечивает безопасность и предотвращает дублирование логинов.

Что будем искать? Например,программа