Реализация метода обработчика события нажатия на кнопку «Зарегистрироваться»:
|
|
Листинг 17.27 |
|
|
|
|
|
|
if (textBoxUserLogin.Text != "" |
|
|
|
&& textBoxUserPassword.Text != "" |
|
|
|
&& textBoxUserProfileName.Text != "" |
С помощью составного условия проверяется |
|
1 |
&& textBoxUserProfileNumberGroup.Text != "" |
заполненность всех полей. |
|
|
|||
|
&& textBoxUserProfilePersonalDate.Text != "" |
|
|
|
&& comboBoxUserRole.Text != "") |
|
|
|
|
|
|
2 |
{ |
|
|
|
|
||
|
|
|
|
3 |
using (UserContext db = new UserContext()) |
Подключение контекста данных UserContext |
|
|
|
||
|
|
|
|
4 |
{ |
|
|
|
|
||
|
|
|
|
|
User user = new User { Login = |
Создание объекта user класса User и |
|
|
textBoxUserLogin.Text, Password = |
||
|
инициализация его свойств данными, |
||
5 |
textBoxUserPassword.Text, Role = |
||
|
|||
|
введенными через соответствующие textBox |
||
|
comboBoxUserRole.Text }; |
||
|
|
||
|
|
|
|
|
db.Users.Add(user); |
Добавление созданного объекта user в |
|
6 |
коллекцию сущностей Users из контекста |
||
|
|||
|
|
||
|
|
|
11
|
|
данных, отвечающую за хранение сущностей в |
|
|
|
базе данных |
|
|
|
|
|
|
db.SaveChanges(); |
Сохранение изменений результата запроса в базе |
|
7 |
данных |
||
|
|||
|
|
||
|
|
|
|
|
if (comboBoxUserRole.Text == "Студент") |
Если выбранное значение в раскрывающемся |
|
8 |
списке comboBox это "Студент" |
||
|
|||
|
|
||
|
|
|
|
9 |
{ |
|
|
|
|
||
|
|
|
|
|
UserProfile userProfile = new UserProfile { Id = |
|
|
|
user.Id, Name = textBoxUserProfileName.Text, |
Создание объекта userProfile класса |
|
|
NumberGroup = |
UserProfile и инициализация его свойств |
|
10 |
int.Parse(textBoxUserProfileNumberGroup.Text), |
данными, введенными через соответствующие |
|
|
PersonalDate = textBoxUserProfilePersonalDate.Text |
textBox |
|
|
}; |
|
|
|
|
|
|
|
|
Добавление созданного объекта userProfile в |
|
|
db.UserProfiles.Add(userProfile); |
коллекцию сущностей UserProfiles из |
|
11 |
контекста данных, отвечающую за хранение |
||
|
|
||
|
|
сущностей в базе данных |
|
|
|
|
12
|
db.SaveChanges(); |
Сохранение изменений результата запроса в базе |
|
12 |
данных |
||
|
|
||
|
|
|
|
13 |
} |
|
|
|
|
|
|
|
else if (comboBoxUserRole.Text == "Преподаватель") |
Если выбранное значение в раскрывающемся |
|
14 |
списке comboBox это "Преподаватель" |
||
|
|
||
|
|
|
|
15 |
{ |
|
|
|
|
|
|
|
UserProfile userProfile = new UserProfile { Id = |
Создание объекта userProfile класса |
|
|
UserProfile и инициализация его свойств |
||
|
user.Id, Name = textBoxUserProfileName.Text, |
||
|
данными, введенными через соответствующие |
||
16 |
NumberGroup = 0, PersonalDate = |
||
textbox (для преподавателя номер группы будет |
|||
|
textBoxUserProfilePersonalDate.Text }; |
||
|
по умолчанию равен 0) |
||
|
|
||
|
|
|
|
|
|
Добавление созданного объекта userProfile в |
|
|
db.UserProfiles.Add(userProfile); |
коллекцию сущностей UserProfiles из |
|
17 |
контекста данных, отвечающую за хранение |
||
|
|
||
|
|
сущностей в базе данных |
|
|
|
|
|
|
db.SaveChanges(); |
Сохранение изменений результата запроса в базе |
|
18 |
данных |
||
|
|
||
|
|
|
13
|
|
Создание объекта professor класса Professor |
|
Professor professor = new Professor { Id = |
и инициализация его свойств данными, |
|
userProfile.Id, Name = |
введенными через соответствующие textbox |
19 |
textBoxUserProfileName.Text, PersonalData = |
(при регистрации преподавателя создается |
|
textBoxUserProfilePersonalDate.Text, Position = |
последовательно две сущности – для хранения |
|
textBoxUserProfileNumberGroup.Text }; |
профиля преподавателя как пользователя |
|
|
системы и дипломного руководителя) |
|
|
|
|
|
Добавление созданного объекта professor в |
|
db.Professors.Add(professor); |
коллекцию сущностей Professors из контекста |
20 |
данных, отвечающую за хранение сущностей в |
|
|
|
|
|
|
базе данных |
|
|
|
|
db.SaveChanges(); |
Сохранение изменений результата запроса в базе |
21 |
данных |
|
|
|
|
|
|
|
22 |
} |
|
|
|
|
23 |
} |
|
|
|
|
|
this.MainForm.Visible = true; |
Переход в форму авторизации после успешной |
24 |
регистрации |
|
|
|
|
|
|
|
25 |
this.Visible = false; |
Скрытие формы регистрации |
|
|
|
26 |
} |
|
|
|
|
|
14 |
|
Обратите внимание, что при создании двух объектов, связанных между собой отношением один ко многим,
необходимо инициализировать атрибут Id подчиненного объекта (в нашей случае подчиненным является userProfile
в паре user-userProfile и professor в паре userProfile-professor) значением атрибута Id родительского объекта. Например, в строке 10 и 16 при создании объекта userProfile свойству Id было присвоено значение user.Id,
то есть Id родительского объекта user, который был предварительно создан.
Рассмотрим пример редактирования данных. Добавим возможность редактирования логина, пароля и информации
«О себе» после входа в личную страницу пользователя в информационной системе. Создадим следующую форму для редактирования данных учетной записи пользователя:
Рисунок 2
Реализация метода обработчика события нажатия на кнопку подтверждения изменений « »:
15