Подготовка к регистрации
Перед написанием кода регистрации необходимо добавить ссылку на контекст базы данных в файл MainWindow.cs. В верхней части файла создадим объект контекста:
AppDbContext db = new AppDbContext();
Это создаёт ссылку на класс AppDbContext, позволяющую взаимодействовать с базой данных. Обратите внимание на использование new для выделения памяти под объект.
Добавление пользователя в базу данных
Для добавления пользователя воспользуемся методом Add объекта базы данных. Процесс включает следующие шаги:
- Создание объекта пользователя: Создаём объект на основе класса модели User, передавая необходимые параметры (логин, email, пароль):
User user = new User(login, email, password);
- Добавление объекта в базу данных: Добавляем созданный объект в контекст базы данных:
db.Users.Add(user);
- Сохранение изменений: Сохраняем изменения в базе данных:
db.SaveChanges();
Важно: для корректной работы с базой данных убедитесь, что поля в классе модели User имеют модификатор доступа public. В противном случае, база данных не сможет получить к ним доступ.
Обработка ошибок
При тестировании регистрации могут возникнуть ошибки. Например, SqlException: The content of files not all constraints are filled. Это может быть вызвано:
- Неправильно прописанными именами полей в коде, не соответствующими именам в таблице базы данных.
- Отсутствием геттеров и сеттеров для полей в классе модели User.
Для решения второй проблемы необходимо создать геттеры и сеттеры для каждого поля. Пример для поля Login:
public string Login
{
get { return login; }
set { login = value; }
}
Аналогично создайте геттеры и сеттеры для полей Email и Password.
Проверка регистрации
После исправления ошибок повторно протестируйте регистрацию. Для проверки успешной регистрации добавим вывод информации о зарегистрированных пользователях в текстовое поле.
В MainWindow.cs, в конструкторе, добавьте следующий код:
List<User> users = db.Users.ToList();
string str = "";
foreach (User user in users)
{
str += user.Login + " - ";
}
exampleText.Text = str;
Этот код получает все записи из таблицы Users, извлекает логины пользователей и выводит их в текстовое поле с именем exampleText. Разделитель между логинами — » — «.
В этом уроке мы реализовали регистрацию пользователей в приложении с использованием C# WPF и базы данных SQLite. В следующих уроках рассмотрим авторизацию пользователей и подробнее изучим работу с базами данных.