13ticket/Neshina13/Edit.cs
2025-11-17 15:48:46 +04:00

153 lines
6.0 KiB
C#

using MySql.Data.MySqlClient;
using NeshinaPolina07_11;
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 Neshina13
{
public partial class Edit : Form
{
private int scheduleId; // ID записи для редактирования
public Edit(int id)
{
InitializeComponent();
this.scheduleId = id;
LoadComboBoxes();
LoadData();
}
private void LoadComboBoxes()
{
// Загрузка предметов
string subjQuery = "SELECT StudySubject_Id, StudySubject_name FROM StudySubjects";
FillComboBox(comboBox1, subjQuery, "StudySubject_name", "StudySubject_Id");
// Загрузка групп
string groupQuery = "SELECT Group_Id, CONCAT(GroupNum, ' - ', Group_Special) AS GroupInfo FROM `Group`";
FillComboBox(comboBox2, groupQuery, "GroupInfo", "Group_Id");
// Загрузка преподавателей
string teacherQuery = "SELECT Teacher_Id, CONCAT(Teacher_FirstName, ' ', Teacher_LastName, ' ', Teacher_MiddleName) AS TeacherName FROM Teacher";
FillComboBox(comboBox3, teacherQuery, "TeacherName", "Teacher_Id");
// Загрузка ответственных (менеджеров)
string managerQuery = "SELECT Manger_Id, CONCAT(Manager_FirstName, ' ', Manager_LastName, ' ', Manager_MiddleName) AS ManagerName FROM Mangers";
FillComboBox(comboBox4, managerQuery, "ManagerName", "Manger_Id");
}
private void FillComboBox(ComboBox comboBox, string query, string displayMember, string valueMember)
{
try
{
var conn = DB.GetInstance().GetConnection();
using (var adapter = new MySqlDataAdapter(query, conn))
{
var table = new DataTable();
adapter.Fill(table);
comboBox.DataSource = table;
comboBox.DisplayMember = displayMember;
comboBox.ValueMember = valueMember;
comboBox.SelectedIndex = -1;
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка загрузки данных: " + ex.Message);
}
}
private void LoadData()
{
string query = @"
SELECT
Schedule_StudySubject_Id,
Schedule_Group_Id,
Schedule_Teacher_Id,
Schedule_ResponsiblMmanager,
Schedule_Date
FROM Schedule
WHERE Schedule_Id = @id";
try
{
var conn = DB.GetInstance().GetConnection();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@id", scheduleId);
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
// Устанавливаем значения в комбобоксы и дату
comboBox1.SelectedValue = reader["Schedule_StudySubject_Id"];
comboBox2.SelectedValue = reader["Schedule_Group_Id"];
comboBox3.SelectedValue = reader["Schedule_Teacher_Id"];
comboBox4.SelectedValue = reader["Schedule_ResponsiblMmanager"];
dateTimePicker1.Value = Convert.ToDateTime(reader["Schedule_Date"]);
}
else
{
MessageBox.Show("Запись не найдена.");
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка загрузки данных для редактирования: " + ex.Message);
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
var conn = DB.GetInstance().GetConnection();
string updateQuery = @"
UPDATE Schedule SET
Schedule_StudySubject_Id = @subjectId,
Schedule_Group_Id = @groupId,
Schedule_Teacher_Id = @teacherId,
Schedule_ResponsiblMmanager = @managerId,
Schedule_Date = @date
WHERE Schedule_Id = @scheduleId";
using (var cmd = new MySqlCommand(updateQuery, conn))
{
cmd.Parameters.AddWithValue("@subjectId", comboBox1.SelectedValue);
cmd.Parameters.AddWithValue("@groupId", comboBox2.SelectedValue);
cmd.Parameters.AddWithValue("@teacherId", comboBox3.SelectedValue);
cmd.Parameters.AddWithValue("@managerId", comboBox4.SelectedValue);
cmd.Parameters.AddWithValue("@date", dateTimePicker1.Value.Date);
cmd.Parameters.AddWithValue("@scheduleId", scheduleId);
cmd.ExecuteNonQuery();
}
MessageBox.Show("Запись успешно обновлена!");
this.DialogResult = DialogResult.OK;
this.Close();
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при сохранении изменений: " + ex.Message);
}
}
}
}