bilet5/MainForm.cs
2025-11-17 20:38:02 +04:00

197 lines
7.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace merkulov5
{
public partial class MainForm : Form
{
private MySqlDataAdapter dataAdapter;
private DataTable prodTable;
private BindingSource bindingSource = new BindingSource();
public MainForm()
{
InitializeComponent();
LoadProdData();
LoadSortOptions();
}
private void LoadProdData() // загрузка данных в дгв
{
try
{
DB db = new DB();
using (MySqlConnection connection = db.getConnection())
{
connection.Open();
string query = "SELECT * FROM Librarian";
dataAdapter = new MySqlDataAdapter(query, connection);
prodTable = new DataTable();
dataAdapter.Fill(prodTable);
dataGridViewProd.RowTemplate.Height = 60;
bindingSource.DataSource = prodTable;
dataGridViewProd.DataSource = bindingSource;
dataGridViewProd.AllowUserToAddRows = false;
dataGridViewProd.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
dataGridViewProd.ReadOnly = true; // настройки дгв
}
}
catch (MySqlException ex)
{
MessageBox.Show("Ошибка при подключении к базе данных или выполнении запроса: " + ex.Message);
}
catch (Exception ex)
{
MessageBox.Show("Произошла общая ошибка: " + ex.Message);
}
}
private void MainForm_Load(object sender, EventArgs e)
{
}
private async void btnAdd_Click(object sender, EventArgs e)
{
DB db = new DB();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
db.openConnection();
MySqlCommand commandAdd = new MySqlCommand("INSERT INTO Librarian (Surname, Name, LastName, Password, Login)" + "VALUES (@Surname, @Name, @Last, @Pass, @Log);", db.getConnection());
commandAdd.Parameters.AddWithValue("@Surname", textBoxSurname.Text);
commandAdd.Parameters.AddWithValue("@Name", textBoxName.Text);
commandAdd.Parameters.AddWithValue("@Last", textBoxLast.Text);
commandAdd.Parameters.AddWithValue("@Pass", textBoxLogin.Text);
commandAdd.Parameters.AddWithValue("@Log", textBoxPass.Text);
int rowsAffected = await commandAdd.ExecuteNonQueryAsync();
if (rowsAffected > 0)
{
MessageBox.Show("Библиотекарь добавлен.");
LoadProdData();
}
else
{
MessageBox.Show("Ошибка при добавлении библиотекаря");
db.closeConnection();
}
}
private void dataGridViewProd_Click(object sender, EventArgs e)
{
Surname.Text = dataGridViewProd.CurrentRow.Cells[1].Value.ToString();
Named.Text = dataGridViewProd.CurrentRow.Cells[2].Value.ToString();
LastName.Text = dataGridViewProd.CurrentRow.Cells[3].Value.ToString();
Log.Text = dataGridViewProd.CurrentRow.Cells[4].Value.ToString();
Pass.Text = dataGridViewProd.CurrentRow.Cells[5].Value.ToString();
}
private void btnEdit_Click(object sender, EventArgs e)
{
DB db = new DB();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
db.openConnection();
MySqlCommand commandEdit = new MySqlCommand(" UPDATE Librarian SET Surname = @Surname, Name = @Name, LastName = @Last, Login = @Login, Password = @Password WHERE idLibrarian = @id;", db.getConnection());
commandEdit.Parameters.AddWithValue("@id", Convert.ToInt32(dataGridViewProd.CurrentRow.Cells[0].Value));
commandEdit.Parameters.AddWithValue("@Surname", Surname.Text);
commandEdit.Parameters.AddWithValue("@Name", Named.Text);
commandEdit.Parameters.AddWithValue("@Last", LastName.Text);
commandEdit.Parameters.AddWithValue("@Login", Log.Text);
commandEdit.Parameters.AddWithValue("@Password", Pass.Text);
int rowsAffected = commandEdit.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("Библиотекарь отредактирован.");
LoadProdData();
}
else
{
MessageBox.Show("Редактирование не удалось");
db.closeConnection();
}
}
private void button1_Click(object sender, EventArgs e)
{
DB db = new DB();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
db.openConnection();
MySqlCommand commandDelete = new MySqlCommand("Delete FROM Librarian WHERE idLibrarian = @id;", db.getConnection());
commandDelete.Parameters.AddWithValue("@id", Convert.ToInt32(dataGridViewProd.CurrentRow.Cells[0].Value));
int rowsAffected = commandDelete.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("Библиотекарь удалена.");
LoadProdData();
}
else
{
MessageBox.Show("Не удалось удалить библиотекаря");
db.closeConnection();
}
}
private void LoadSortOptions()
{
comboBoxSort.Items.Add("По умолчанию");
comboBoxSort.Items.Add("Фамилия (а-я)");
comboBoxSort.Items.Add("Фамилия (я-а)");
comboBoxSort.SelectedIndex = 0;
}
private void comboBoxSort_SelectedIndexChanged(object sender, EventArgs e)
{
string sortOption = comboBoxSort.SelectedItem.ToString();
switch (sortOption)
{
case "По умолчанию":
bindingSource.Sort = "";
break;
case "Фамилия (а-я)":
bindingSource.Sort = "Surname ASC";
break;
case "Фамилия (я-а)":
bindingSource.Sort = "Surname DESC";
break;
}
}
}
}