using database; 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; namespace Forms { public partial class FormDevice : Form { private Abstractions bd; public FormDevice(Abstractions _bd) { InitializeComponent(); bd = _bd; } private void loadData() { // Получаем список девайсов List devices = bd.GetDevices(); // Очищаем dataGridView перед заполнением новыми данными dataGridView.Rows.Clear(); // Предварительно определяем столбцы, если это не было сделано ранее if (dataGridView.ColumnCount == 0) { dataGridView.Columns.Add("Id", "ID"); dataGridView.Columns.Add("TypeDevice", "TypeDevice"); dataGridView.Columns.Add("Model", "Model"); dataGridView.Columns.Add("SerialNumber", "SerialNumber"); dataGridView.Columns.Add("ClientId", "ClientId"); dataGridView.Columns["ClientId"].Visible = false; dataGridView.Columns.Add("Client", "Client"); dataGridView.Columns.Add("OrderId", "OrderId"); dataGridView.Columns["OrderId"].Visible = false; dataGridView.Columns.Add("Order", "Order"); } // Заполняем dataGridView данными из списка девайсов foreach (Device device in devices) { dataGridView.Rows.Add(device.Id, device.TypeDevice, device.Model, device.SerialNumber, device.ClientId, bd.GetClientById(device.ClientId).Name, device.OrderId, bd.GetOrderById(device.OrderId).EndCost); } } private void buttonCreate_Click(object sender, EventArgs e) { // Создаем новый объект Device и заполняем его данными из текстовых полей и комбо-боксов Device newDevice = new Device { TypeDevice = textBoxTypeDevice.Text, Model = textBoxModel.Text, SerialNumber = textBoxSerialNumber.Text, ClientId = ((Client)comboBoxClientId.SelectedItem).Id, OrderId = ((Order)comboBoxOrderId.SelectedItem).Id }; // Вызываем метод добавления нового девайса в базу данных bd.AddDevice(newDevice); // Обновляем dataGridView loadData(); } private void buttonUpdate_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count > 0) { // Получаем индекс выбранной строки int rowIndex = dataGridView.CurrentCell.RowIndex; // Получаем ID редактируемого автомобиля из выбранной строки dataGridView int deviceId = (int)dataGridView.Rows[rowIndex].Cells["Id"].Value; // Создаем объект Device и заполняем его данными из текстовых полей и комбо-боксов Device updatedDevice = new Device { Id = deviceId, TypeDevice = textBoxTypeDevice.Text, Model = textBoxModel.Text, SerialNumber = textBoxSerialNumber.Text, ClientId = ((Client)comboBoxClientId.SelectedItem).Id, OrderId = ((Order)comboBoxOrderId.SelectedItem).Id }; // Вызываем метод обновления девайса в базе данных bd.UpdateDevice(updatedDevice); // Обновляем dataGridView loadData(); } } private void buttonDelete_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count > 0) { // Получаем индекс выбранной строки int rowIndex = dataGridView.CurrentCell.RowIndex; // Получаем ID удаляемого девайса из выбранной строки dataGridView int deviceId = (int)dataGridView.Rows[rowIndex].Cells["Id"].Value; // Вызываем метод удаления девайса из базы данных bd.DeleteDevice(deviceId); // Обновляем dataGridView loadData(); } } private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { DataGridViewRow row = dataGridView.Rows[e.RowIndex]; // Заполняем текстовые поля данными из выбранной строки textBoxTypeDevice.Text = row.Cells["TypeDevice"].Value.ToString(); textBoxModel.Text = row.Cells["Model"].Value.ToString(); textBoxSerialNumber.Text = row.Cells["SerialNumber"].Value.ToString(); // Получаем значения для комбо-боксов из выбранной строки int clientId = Convert.ToInt32(row.Cells["ClientId"].Value); int orderId = Convert.ToInt32(row.Cells["OrderId"].Value); // Устанавливаем выбранные значения в комбо-боксы comboBoxClientId.SelectedValue = clientId; comboBoxOrderId.SelectedValue = orderId; } } private void FormDevice_Load(object sender, EventArgs e) { // Заполнение comboBoxClientId данными из БД comboBoxClientId.DataSource = bd.GetClients(); comboBoxClientId.DisplayMember = "Name"; comboBoxClientId.ValueMember = "Id"; // Заполнение comboBoxOrderId данными из БД comboBoxOrderId.DataSource = bd.GetOrders(); comboBoxOrderId.DisplayMember = "Title"; comboBoxOrderId.ValueMember = "Id"; // Загрузка данных в dataGridView loadData(); } } }