Регистрация пользователя в приложении с использованием базы данных — простой, но важный процесс. В этом уроке мы рассмотрим реализацию регистрации пользователя в базе данных через приложение 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-запроса, подключение к базе данных, обработку результатов и обратную связь пользователю. Система обеспечивает безопасность и предотвращает дублирование логинов.