using database; using System.Windows.Forms; namespace Forms { public partial class FormService : Form { private Abstractions bd; public FormService(Abstractions _bd) { InitializeComponent(); bd = _bd; } private void loadData() { List services = bd.GetServices(); // Очищаем dataGridView перед заполнением новыми данными dataGridView.Rows.Clear(); // Предварительно определяем столбцы, если это не было сделано ранее if (dataGridView.ColumnCount == 0) { dataGridView.Columns.Add("Id", "ID"); dataGridView.Columns.Add("Title", "Title"); dataGridView.Columns.Add("Cost", "Cost"); dataGridView.Columns.Add("EmployeesId", "EmployeesId"); dataGridView.Columns["EmployeesId"].Visible = false; dataGridView.Columns.Add("Employees", "Employees"); } // Заполняем dataGridView данными из списка услуг foreach (Service service in services) { dataGridView.Rows.Add(service.Id, service.Title, service.Cost, service.EmployeesId, bd.GetEmployeeById(service.EmployeesId).Id); } } private void buttonCreate_Click(object sender, EventArgs e) { // Создаем новый объект Service с данными из текстовых полей и комбо-бокса Service newService = new Service { Title = textBoxTitle.Text, Cost = decimal.Parse(textBoxCost.Text), EmployeesId = ((Employee)comboBoxEmployeesId.SelectedItem).Id, }; // Добавляем новую услугу в базу данных bd.AddService(newService); // Перезагружаем данные в таблицу loadData(); } private void buttonUpdate_Click(object sender, EventArgs e) { // Получаем Id выбранной строки int selectedRowId = (int)dataGridView.SelectedRows[0].Cells["Id"].Value; // Создаем объект Service с обновленными данными из текстовых полей и комбо-бокса Service updatedService = new Service { Id = selectedRowId, Title = textBoxTitle.Text, Cost = decimal.Parse(textBoxCost.Text), EmployeesId = ((Employee)comboBoxEmployeesId.SelectedItem).Id, }; // Обновляем услуги в базе данных bd.UpdateService(updatedService); // Перезагружаем данные в таблицу loadData(); } private void buttonDelete_Click(object sender, EventArgs e) { // Получаем Id выбранной строки int selectedRowId = (int)dataGridView.SelectedRows[0].Cells["Id"].Value; // Удаляем услуги из базы данных bd.DeleteService(selectedRowId); // Перезагружаем данные в таблицу loadData(); } private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { DataGridViewRow row = dataGridView.Rows[e.RowIndex]; // Заполняем текстовые поля данными из выбранной строки textBoxTitle.Text = row.Cells["Title"].Value.ToString(); textBoxCost.Text = row.Cells["Cost"].Value.ToString(); // Получаем значение сотрудника из выбранной строки int employeeId = Convert.ToInt32(row.Cells["EmployeesId"].Value); // Выбираем сотрудника с данным employeeId в комбо-боксе comboBoxEmployeesId.SelectedValue = employeeId; } } private void FormService_Load(object sender, EventArgs e) { // Заполнение comboBoxClientId данными из БД comboBoxEmployeesId.DataSource = bd.GetEmployees(); comboBoxEmployeesId.DisplayMember = "Name"; comboBoxEmployeesId.ValueMember = "Id"; loadData(); } } }