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

122 lines
4.4 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.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Neshina13
{
public partial class Add : Form
{
public Add()
{
InitializeComponent();
LoadComboBoxes();
}
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 button1_Click(object sender, EventArgs e)
{
// Проверка, что все обязательные поля выбраны
if (comboBox1.SelectedValue == null ||
comboBox2.SelectedValue == null ||
comboBox3.SelectedValue == null ||
comboBox4.SelectedValue == null)
{
MessageBox.Show("Пожалуйста, заполните все поля.");
return;
}
try
{
var conn = DB.GetInstance().GetConnection();
string insertQuery = @"
INSERT INTO Schedule (
Schedule_StudySubject_Id,
Schedule_Group_Id,
Schedule_Teacher_Id,
Schedule_ResponsiblMmanager,
Schedule_Date
) VALUES (
@subjectId,
@groupId,
@teacherId,
@managerId,
@date
);";
using (var cmd = new MySqlCommand(insertQuery, 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.ExecuteNonQuery();
}
MessageBox.Show("Запись успешно добавлена!");
this.DialogResult = DialogResult.OK;
this.Close();
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при добавлении записи: " + ex.Message);
}
}
}
}