using System; using System.Data; using System.Windows.Forms; namespace WindowsFormsApp4 { public partial class ClientsForm : Form { private DataTable clientsTable; public ClientsForm() { InitializeComponent(); AttachEventHandlers(); LoadClients(); ConfigureGrid(); } private void AttachEventHandlers() { btnRefresh.Click += BtnRefresh_Click; btnAdd.Click += BtnAdd_Click; btnEdit.Click += BtnEdit_Click; btnDelete.Click += BtnDelete_Click; btnBack.Click += BtnBack_Click; } private void LoadClients() { clientsTable = DatabaseHelper.GetClients(); dgvClients.DataSource = clientsTable; ConfigureGrid(); } private void ConfigureGrid() { if (dgvClients.Columns.Count == 0) return; // Настройка заголовков if (dgvClients.Columns.Contains("id")) dgvClients.Columns["id"].HeaderText = "ID"; if (dgvClients.Columns.Contains("last_name")) dgvClients.Columns["last_name"].HeaderText = "Фамилия"; if (dgvClients.Columns.Contains("first_name")) dgvClients.Columns["first_name"].HeaderText = "Имя"; if (dgvClients.Columns.Contains("middle_name")) dgvClients.Columns["middle_name"].HeaderText = "Отчество"; if (dgvClients.Columns.Contains("phone")) dgvClients.Columns["phone"].HeaderText = "Телефон"; // Настройка цвета строк dgvClients.DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(50, 56, 67); dgvClients.DefaultCellStyle.ForeColor = System.Drawing.Color.FromArgb(203, 232, 87); dgvClients.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(198, 141, 255); dgvClients.DefaultCellStyle.SelectionForeColor = System.Drawing.Color.FromArgb(50, 56, 67); dgvClients.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(198, 141, 255); dgvClients.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.Color.FromArgb(50, 56, 67); dgvClients.EnableHeadersVisualStyles = false; dgvClients.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; } private void BtnRefresh_Click(object sender, EventArgs e) { LoadClients(); } private void BtnAdd_Click(object sender, EventArgs e) { ClientEditForm form = new ClientEditForm(); if (form.ShowDialog() == DialogResult.OK) { LoadClients(); MessageBox.Show("Клиент успешно добавлен", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void BtnEdit_Click(object sender, EventArgs e) { if (dgvClients.CurrentRow == null) { MessageBox.Show("Выберите клиента для редактирования", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int clientId = Convert.ToInt32(dgvClients.CurrentRow.Cells["client_id"].Value); string lastName = dgvClients.CurrentRow.Cells["last_name"].Value.ToString(); string firstName = dgvClients.CurrentRow.Cells["first_name"].Value.ToString(); string middleName = dgvClients.CurrentRow.Cells["middle_name"].Value?.ToString(); string phone = dgvClients.CurrentRow.Cells["phone"].Value.ToString(); ClientEditForm form = new ClientEditForm(clientId, lastName, firstName, middleName, phone); if (form.ShowDialog() == DialogResult.OK) { LoadClients(); MessageBox.Show("Клиент успешно обновлён", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void BtnDelete_Click(object sender, EventArgs e) { if (dgvClients.CurrentRow == null) { MessageBox.Show("Выберите клиента для удаления", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int clientId = Convert.ToInt32(dgvClients.CurrentRow.Cells["client_id"].Value); string clientName = dgvClients.CurrentRow.Cells["last_name"].Value.ToString() + " " + dgvClients.CurrentRow.Cells["first_name"].Value.ToString(); DialogResult result = MessageBox.Show($"Удалить клиента {clientName}?", "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (result == DialogResult.Yes) { if (DatabaseHelper.DeleteClient(clientId)) { LoadClients(); MessageBox.Show("Клиент успешно удалён", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Ошибка при удалении клиента", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void BtnBack_Click(object sender, EventArgs e) { this.Close(); } } }