153 lines
6.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|