private void btnCapNhat_Click(object sender, EventArgs e)
        {
            DataTable dtTemp = dtMonHoc.GetChanges();

            if (dtTemp != null)
            {
                bool mStatus = true;
                foreach (DataRow dr in dtTemp.Rows)
                {
                    if (dr.RowState == DataRowState.Modified)
                    {
                        try
                        {
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.KQHT_MonHoc_CT_KhoiKienThucID = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strKQHT_MonHoc_CT_KhoiKienThucID].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.IDDM_HinhThucThi       = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strIDDM_HinhThucThi].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.IDDM_MonHoc            = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strIDDM_MonHoc].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.IDKQHT_CT_KhoiKienThuc = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strIDKQHT_CT_KhoiKienThuc].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.LoaiTietKhac1          = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strLoaiTietKhac1].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.LoaiTietKhac2          = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strLoaiTietKhac2].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.LyThuyet         = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strLyThuyet].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.ThucHanh         = int.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strThucHanh].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.SoTiet           = pKQHT_MonHoc_CT_KhoiKienThucInfo.LoaiTietKhac1 + pKQHT_MonHoc_CT_KhoiKienThucInfo.LoaiTietKhac2 + pKQHT_MonHoc_CT_KhoiKienThucInfo.LyThuyet + pKQHT_MonHoc_CT_KhoiKienThucInfo.ThucHanh;
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.SoHocTrinh       = double.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strSoHocTrinh].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.ChoPhepXepLich   = bool.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strChoPhepXepLich].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.TuChon           = bool.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strTuChon].ToString());
                            pKQHT_MonHoc_CT_KhoiKienThucInfo.TinhDiemToanKhoa = bool.Parse(dr[pKQHT_MonHoc_CT_KhoiKienThucInfo.strTinhDiemToanKhoa].ToString());
                            oBKQHT_MonHoc_CT_KhoiKienThuc.Update(pKQHT_MonHoc_CT_KhoiKienThucInfo);
                        }
                        catch
                        {
                            mStatus = false;
                        }
                    }
                }
                if (mStatus == true)
                {
                    // Ghi Log
                    GhiLog("Cập nhật chương trình khối kiến thức '" + pKQHT_CT_KhoiKienThucInfo.TenCT_KhoiKienThuc + "'", "Cập nhật", this.Tag.ToString());
                    grvCTDT_FocusedRowChanged(null, null);
                    ThongBao("Cập nhật thành công.");
                }
                else
                {
                    ThongBao("Lỗi trong quá trình cập nhật.");
                }
            }
        }