using Npgsql; using System.Data; namespace DeviceAdmin { public partial class FormOwnership : Form { NpgsqlConnection connection = Program.connection; private DataTable dataTable; private NpgsqlDataAdapter adapter; private NpgsqlDataAdapter adapter2; private NpgsqlDataAdapter adapter3; private DataTable dataTableStaff = new(); private DataTable dataTableKit = new(); public FormOwnership() { InitializeComponent(); LoadGridView(); adapter2 = new NpgsqlDataAdapter("SELECT id, CONCAT(id, ' ', title) AS title FROM kits", connection); adapter2.Fill(dataTableKit); comboBoxKit.DataSource = dataTableKit; adapter3 = new NpgsqlDataAdapter("SELECT * FROM staff", connection); adapter3.Fill(dataTableStaff); comboBoxStaff.DataSource = dataTableStaff; } private void LoadGridView() { adapter = new NpgsqlDataAdapter("SELECT kit_id, kits.title, staff_id, staff.full_name FROM ownership LEFT JOIN kits ON kit_id=kits.id FULL OUTER JOIN staff ON staff_id=staff.id;", connection); dataTable = new DataTable(); adapter.Fill(dataTable); dataGridView.DataSource = dataTable; DataGridViewColumnCollection columns = dataGridView.Columns; columns[0].HeaderText = "ID компл."; columns[1].HeaderText = "Название компл."; columns[2].HeaderText = "ID сотрудника"; columns[3].HeaderText = "ФИО сотрудника"; } private void ButtonAdd_Click(object sender, EventArgs e) { NpgsqlCommand command = new NpgsqlCommand("INSERT INTO ownership VALUES (@kit, @staff);", connection); command.Parameters.AddWithValue("@kit", (int)comboBoxKit.SelectedValue); command.Parameters.AddWithValue("@staff", (int)comboBoxStaff.SelectedValue); command.ExecuteNonQuery(); LoadGridView(); } private void ButtonEdit_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count > 0) { int kit_id = (int)dataGridView.SelectedRows[0].Cells[0].Value; int staff_Id = (int)dataGridView.SelectedRows[0].Cells[2].Value; NpgsqlCommand command = new NpgsqlCommand("UPDATE ownership SET kit_id = @kit, staff_id = @staff WHERE kit_id =@kit_id AND staff_id=@staff_id", connection); command.Parameters.AddWithValue("@kit_id", kit_id); command.Parameters.AddWithValue("@staff_Id", staff_Id); command.Parameters.AddWithValue("@kit", (int)comboBoxKit.SelectedValue); command.Parameters.AddWithValue("@staff", (int)comboBoxStaff.SelectedValue); command.ExecuteNonQuery(); LoadGridView(); } else { MessageBox.Show("Please select a row to edit.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ButtonDelete_Click(object sender, EventArgs e) { if (dataGridView.SelectedRows.Count > 0) { int kit_id = (int)dataGridView.SelectedRows[0].Cells[0].Value; int staff_Id = (int)dataGridView.SelectedRows[0].Cells[2].Value; NpgsqlCommand command = new NpgsqlCommand("DELETE FROM ownership WHERE kit_id = @kit_id and staff_id=@staff_id", connection); command.Parameters.AddWithValue("@kit_id", kit_id); command.Parameters.AddWithValue("@staff_Id", staff_Id); command.ExecuteNonQuery(); LoadGridView(); } else { MessageBox.Show("Please select a row to delete.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ButtonRefresh_Click(object sender, EventArgs e) { LoadGridView(); } } }