private void Button_Them_Click(object sender, EventArgs e)
        {
            if (currentHSCho == "")
            {
                MessageBox.Show("Vui lòng chọn học sinh để tiếp tục!", "Chưa chọn học sinh", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (int.Parse(TextBox_SiSo.Text.Substring(0, TextBox_SiSo.Text.IndexOf(' ') + 1)) < listThamSo.SiSoToiDa)
            {
                int?result = hocsinh.AddHocSinhVaoLop(currentHSCho, currentLop, currentHocKy, currentNamHoc);
                if (result == 1)
                {
                    MessageBox.Show("Dữ liệu đã được cập nhật", "Thêm thành công!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Không thể cập nhật thông tin", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Lớp đã đạt sĩ số tối đa", "Không thể thêm học sinh vào lớp!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            LoadDanhSachHocSinh();
            LoadHocSinhCho();
            GridView_DSLop.ClearSelection();
            GridView_DSCho.ClearSelection();
        }
        private void Button_SuaLop_Click(object sender, EventArgs e)
        {
            if (currentMaLop == "")
            {
                MessageBox.Show("Chưa chọn lớp", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (TextBox_TenLop.Text == "")
            {
                MessageBox.Show("Tên lớp không được để trống", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            DanhSachLop dslop = new DanhSachLop();

            dslop.MaLop     = long.Parse(currentMaLop);
            dslop.TenLop    = TextBox_TenLop.Text;
            dslop.MaKhoiLop = long.Parse(ComboBox_KhoiLop.SelectedValue.ToString());
            int?result = danhsachlop.Update_Lop(dslop);

            if (result == 1)
            {
                MessageBox.Show("Dữ liệu đã được cập nhật", "Cập nhật thành công!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Không thể cập nhật thông tin", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            LoadDSLop();
            currentMaLop = "";
            GridView_DSLop.ClearSelection();
        }
        private void Button_ThemLop_Click(object sender, EventArgs e)
        {
            if (TextBox_TenLop.Text == "")
            {
                MessageBox.Show("Tên lớp không được để trống", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (danhsachlop.CheckTonTaiLop(TextBox_TenLop.Text) > 0)
            {
                MessageBox.Show("Đã tồn tại lớp này", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            DanhSachLop dslop = new DanhSachLop();

            dslop.TenLop    = TextBox_TenLop.Text;
            dslop.SiSo      = 0;
            dslop.MaKhoiLop = long.Parse(currentKhoiLop);
            int?result = danhsachlop.Insert_Lop(dslop);

            if (result == 1)
            {
                MessageBox.Show("Dữ liệu đã được cập nhật", "Thêm thành công!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Không thể cập nhật thông tin", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            LoadDSLop();
            currentMaLop = "";
            GridView_DSLop.ClearSelection();
        }
        private void Button_XoaLop_Click(object sender, EventArgs e)
        {
            if (currentMaLop == "")
            {
                MessageBox.Show("Chưa chọn lớp", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            int?result = danhsachlop.Delete_Lop(currentMaLop);

            if (result == 1)
            {
                MessageBox.Show("Dữ liệu đã được cập nhật", "Xóa thành công!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Không thể cập nhật thông tin", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            LoadDSLop();
            currentMaLop = "";
            GridView_DSLop.ClearSelection();
        }
        private void Button_Xoa_Click(object sender, EventArgs e)
        {
            if (currentHSLop == "")
            {
                MessageBox.Show("Vui lòng chọn học sinh để tiếp tục!", "Chưa chọn học sinh", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            int?result = hocsinh.Delete_HSTrongLop(currentHSLop, currentLop, currentHocKy, currentNamHoc);

            if (result == 1)
            {
                MessageBox.Show("Dữ liệu đã được cập nhật", "Xóa thành công!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Không thể cập nhật thông tin", "Đã xảy ra lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            LoadDanhSachHocSinh();
            LoadHocSinhCho();
            GridView_DSLop.ClearSelection();
            GridView_DSCho.ClearSelection();
        }
        void LoadDanhSachHocSinh()
        {
            currentLop    = ComboBox_Lop.SelectedValue.ToString();
            currentHocKy  = ComboBox_HocKy.SelectedValue.ToString();
            currentNamHoc = ComboBox_NamHoc.SelectedValue.ToString();

            if (currentLop == "" | currentHocKy == "" | currentNamHoc == "")
            {
                GridView_DSLop.DataSource = null;
                return;
            }
            DataTable temp = hocsinh.GetHocSinh(currentLop, currentHocKy, currentNamHoc);

            temp.Columns.Add("GT", typeof(string));
            temp.Columns.Add("SoThuTu", typeof(int));
            temp.Columns.Add("NS", typeof(string));

            int stt = 1;

            foreach (DataRow row in temp.Rows)
            {
                row["SoThuTu"] = stt;
                stt++;

                DateTime ns = DateTime.Parse(row["NgaySinh"].ToString());
                row["NS"] = ns.ToShortDateString();

                if (row["GioiTinh"].ToString() == "True")
                {
                    row["GT"] = "Nam";
                }
                else
                {
                    row["GT"] = "Nữ";
                }
            }

            foreach (DataGridViewColumn column in GridView_DSLop.Columns)
            {
                column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }

            GridView_DSLop.DataSource                 = temp;
            GridView_DSLop.AutoSizeColumnsMode        = DataGridViewAutoSizeColumnsMode.Fill;
            GridView_DSLop.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            GridView_DSLop.SelectionMode              = DataGridViewSelectionMode.FullRowSelect;
            GridView_DSLop.AutoSizeRowsMode           = DataGridViewAutoSizeRowsMode.AllCells;
            GridView_DSLop.RowHeadersVisible          = false;
            GridView_DSLop.ReadOnly = true;
            GridView_DSLop.ClearSelection();

            TextBox_SiSo.Text = danhsachlop.GetSiSo(currentLop, currentHocKy, currentNamHoc).ToString() + " / " + listThamSo.SiSoToiDa;

            GridView_DSLop.CellClick += GridView_DSLop_CellClick;

            // Edit theme
            GridView_DSLop.BorderStyle = BorderStyle.FixedSingle;
            GridView_DSLop.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(238, 239, 249);
            GridView_DSLop.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
            GridView_DSLop.DefaultCellStyle.SelectionBackColor = Color.RoyalBlue;
            GridView_DSLop.DefaultCellStyle.SelectionForeColor = Color.WhiteSmoke;
            GridView_DSLop.BackgroundColor = Color.White;

            GridView_DSLop.EnableHeadersVisualStyles = false;
            GridView_DSLop.ColumnHeadersBorderStyle  = DataGridViewHeaderBorderStyle.Single;
            GridView_DSLop.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(20, 25, 72);
            GridView_DSLop.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
        }