using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace hospital { public partial class registrationForm : Form { SqlConnection sqlConnection = null; SqlCommand a = null; public registrationForm() { InitializeComponent(); } private void registrationForm_Load(object sender, EventArgs e) { FormCreating.openConnection(ref sqlConnection); SqlCommand a = new SqlCommand($"select name_gender from gender", sqlConnection); SqlDataReader reader = a.ExecuteReader(); while (reader.Read()) { genderCB.Items.Add(reader.GetString(0)); } reader.Close(); } private void registrationBTN_Click(object sender, EventArgs e) { try { bool checkTB = false, checkMTB = false; foreach (TextBox textBox in this.Controls.OfType()) { if (String.IsNullOrEmpty(textBox.Text)) { checkTB = true; break; } } foreach (MaskedTextBox maskedTextBox in this.Controls.OfType()) { if (!maskedTextBox.MaskCompleted) { checkMTB = true; break; } } if(passwordTB.Text.Length < 5) { MessageBox.Show("Пароль слишком короткий! Он должен содержать минимум 5 символов", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if(passwordTB.Text.Contains(" ") || loginTB.Text.Contains(" ")) { MessageBox.Show("В пароле или логине присутствуют пробелы", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (!checkTB && !checkMTB) { a = new SqlCommand($"select count(*) from employees where login like '{loginTB.Text.GetHashCode()}'", sqlConnection); if (!a.ExecuteScalar().ToString().Equals("1")) { a = new SqlCommand($"select id_gender from gender where name_gender like N'{genderCB.SelectedItem}'", sqlConnection); string id_gender = a.ExecuteScalar().ToString(); a = new SqlCommand($"insert into employees (surname_employee, name_employee, midname_employee, Date_Birthday_Employee, Telephone_Employee, Passport_Number_Employee, Passport_Date_Employee, Passport_Place_Employee, Passport_Code_Employee, [login], [password], id_gender) values (@surname_employee, @name_employee, @midname_employee, @Date_Birthday_Employee, @Telephone_Employee, @Passport_Number_Employee, @Passport_Date_Employee, @Passport_Place_Employee, @Passport_Code_Employee, @login, @password, @id_gender)", sqlConnection); DateTime date1 = DateTime.Parse(birthDateDTP.Text); DateTime date2 = DateTime.Parse(issueDateDTP.Text); a.Parameters.AddWithValue("surname_employee", surnameTB.Text); a.Parameters.AddWithValue("name_employee", nameTB.Text); a.Parameters.AddWithValue("midname_employee", midnameTB.Text); a.Parameters.AddWithValue("Date_Birthday_Employee", $"{date1.Day}/{date1.Month}/{date1.Year}"); a.Parameters.AddWithValue("Telephone_Employee", telephoneMTB.Text); a.Parameters.AddWithValue("Passport_Number_Employee", seriesMTB.Text); a.Parameters.AddWithValue("Passport_Date_Employee", $"{date2.Day}/{date2.Month}/{date2.Year}"); a.Parameters.AddWithValue("Passport_Place_Employee", issuedByTB.Text); a.Parameters.AddWithValue("Passport_Code_Employee", divisionCodeMTB.Text); a.Parameters.AddWithValue("login", loginTB.Text.GetHashCode()); a.Parameters.AddWithValue("password", passwordTB.Text.GetHashCode()); a.Parameters.AddWithValue("id_gender", id_gender); Array.Resize(ref auth.data, 12); auth.data[0] = $"Фамилия: {surnameTB.Text}"; auth.data[1] = $"Имя: {nameTB.Text}"; auth.data[2] = $"Отчество: {midnameTB.Text}"; auth.data[3] = $"Дата рождения: {date1.Day}/{date1.Month}/{date1.Year}"; auth.data[4] = $"Телефон: {telephoneMTB.Text}"; auth.data[5] = $"Серия и номер паспорта: {seriesMTB.Text}"; auth.data[6] = $"Дата выдачи паспорта: {date2.Day}/{date2.Month}/{date2.Year}"; auth.data[7] = $"Кем выдан: {issuedByTB.Text}"; auth.data[8] = $"Код подразделения: {divisionCodeMTB.Text}"; auth.data[9] = $"Логин: {loginTB.Text}"; auth.data[10] = $"Пароль: {passwordTB.Text}"; auth.data[11] = $"Пол: {genderCB.SelectedItem}"; if (a.ExecuteNonQuery() == 1) { MessageBox.Show("Регистрация прошла успешно!", "Уведомление", MessageBoxButtons.OK, MessageBoxIcon.Information); debugAndTrace.writeInFile("Регистрация", auth.data); debugAndTrace.writeInFile("Переход на форму авторизации"); this.Close(); } else { MessageBox.Show("Произошла ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); debugAndTrace.writeInFile("Ошибка рагистрации", auth.data); } } else { MessageBox.Show("Такой пользователь уже зарегистрирован", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); debugAndTrace.writeInFile("Error, такой пользователь уже зарегистрирован", auth.data); } } else { MessageBox.Show("Заполнены не все поля", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); debugAndTrace.writeInFile("Error, заполнены не все поля"); } } } } catch { MessageBox.Show("Произошла непредвиденная ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); debugAndTrace.writeInFile("ERROR"); } } private void backBTN_Click(object sender, EventArgs e) { var res = MessageBox.Show("Уверены, что хотите отменить регистрацию?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if(res == DialogResult.Yes) { debugAndTrace.writeInFile("Отмена регистрации"); this.Close(); } else { MessageBox.Show("Действие отменено", "Уведомление", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void label6_Click(object sender, EventArgs e) { } private void issuedByTB_TextChanged(object sender, EventArgs e) { } } }