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); } } } }