private void btnGhi_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { switch (choose) { case Program.THEM: if (checkAvailabelInfo()) { xuLyThem(true, txtMaSV.Text.Trim(), txtHoSV.Text.Trim(), txtTenSV.Text.Trim(), cmbLop.SelectedValue.ToString(), checkPhaiSV.Checked, Program.convertStringToDateTime(txtNgaySinhSV.Text), txtNoiSinhSV.Text.Trim(), txtDiaChiSV.Text.Trim(), checkNghiHoc.Checked); } break; case Program.HIEU_CHINH: if (checkAvailabelInfo() && sv != null) { Program.ObjectUndo obj = new Program.ObjectUndo(Program.HIEU_CHINH, sv); st.Push(obj); updateUIButtonPhucHoi(); xuLyHieuChinh(txtMaSV.Text.ToString(), txtHoSV.Text.ToString(), txtTenSV.Text.ToString(), checkPhaiSV.Checked, Program.convertStringToDateTime(txtNgaySinhSV.Text.ToString()), txtNoiSinhSV.Text.ToString(), txtDiaChiSV.Text.ToString(), checkNghiHoc.Checked); } break; } ; }
private void btnXoa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenhKiemTraTenLop = "dbo.sp_KiemTraLopTonTaiSinhVien "; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenhKiemTraTenLop; Program.sqlcmd.Parameters.Add("@MALOP", SqlDbType.Text).Value = txtMaLop.Text.Trim(); Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); String RetKiemTraTenLop = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (RetKiemTraTenLop == "1") { MessageBox.Show("Không thể xóa lớp này vì có sinh viên trong lớp", "", MessageBoxButtons.OK); return; } String maLop = ""; if (MessageBox.Show("Bạn có thật sự muốn xóa lớp này ?? ", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.OK) { try { DataRowView dataRow = (DataRowView)bdsDsLop[bdsDsLop.Position]; maLop = dataRow["MALOP"].ToString(); // giữ lại để khi xóa bij lỗi thì ta sẽ quay về lại String tenLop = dataRow["TENLOP"].ToString(); String maKhoa = dataRow["MAKH"].ToString(); Lop lopRemove = new Lop(maLop, tenLop, maKhoa); Program.ObjectUndo obj = new Program.ObjectUndo(Program.XOA, lopRemove); bdsDsLop.RemoveCurrent(); this.lOPTableAdapter.Connection.ConnectionString = Program.connstr; this.lOPTableAdapter.Update(this.dS.LOP); st.Push(obj); updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show("Lỗi xóa lớp. Bạn hãy xóa lại\n" + ex.Message, "", MessageBoxButtons.OK); this.lOPTableAdapter.Fill(this.dS.LOP); bdsDsLop.Position = bdsDsLop.Find("MALOP", maLop); return; } } if (bdsDsLop.Count == 0) { btnXoa.Enabled = false; } }
private void btnXoa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenhKiemTraTenLop = "dbo.sp_KiemTraMonHocTonTaiDiem"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenhKiemTraTenLop; Program.sqlcmd.Parameters.Add("@MAMH", SqlDbType.Text).Value = convertStringToUTF8(txtMaMH.Text.Trim()); Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); String RetKiemTraTenLop = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (RetKiemTraTenLop == "1") { MessageBox.Show("Không thể xóa môn học này vì có điểm trong môn học", "", MessageBoxButtons.OK); return; } String maMH = ""; if (MessageBox.Show("Bạn có thật sự muốn xóa môn học này ?? ", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.OK) { try { DataRowView dataRow = (DataRowView)mONHOCBindingSource[mONHOCBindingSource.Position]; maMH = dataRow["MAMH"].ToString(); // giữ lại để khi xóa bij lỗi thì ta sẽ quay về lại String tenMH = dataRow["TENMH"].ToString(); MonHoc mhRemove = new MonHoc(maMH, tenMH); Program.ObjectUndo obj = new Program.ObjectUndo(Program.XOA, mhRemove); mONHOCBindingSource.RemoveCurrent(); this.mONHOCTableAdapter.Connection.ConnectionString = Program.connstr; this.mONHOCTableAdapter.Update(this.dS.MONHOC); st.Push(obj); updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show("Lỗi xóa lớp. Bạn hãy xóa lại\n" + ex.Message, "", MessageBoxButtons.OK); this.mONHOCTableAdapter.Fill(this.dS.MONHOC); mONHOCBindingSource.Position = mONHOCBindingSource.Find("MAMH", maMH); return; } } if (mONHOCBindingSource.Count == 0) { btnXoa.Enabled = false; } }
private void btnHieuChinh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { vitri = mONHOCBindingSource.Position; groupBox1.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnExit.Enabled = false; btnGhi.Enabled = btnPhucHoi.Enabled = btnReload.Enabled = true; txtMaMH.Enabled = false; txtTenMH.Focus(); gcMonHoc.Enabled = true; choose = Program.HIEU_CHINH; // lưu stack cho undo MonHoc mh = new MonHoc(txtMaMH.Text, txtTenMH.Text); Program.ObjectUndo obj = new Program.ObjectUndo(Program.HIEU_CHINH, mh); st.Push(obj); updateUIButtonPhucHoi(); }
private void btnPhucHoi_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnHieuChinh.Enabled == false || btnThem.Enabled == false) { DsSinhVienTheoLopBindingSource.CancelEdit(); this.DsSinhVienTheoLopTableAdapter.Connection.ConnectionString = Program.connstr; if (btnThem.Enabled == false) { DsSinhVienTheoLopBindingSource.Position = vitri; } gcSinhVien.Enabled = true; panelDetail.Enabled = false; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnThoat.Enabled = true; btnGhi.Enabled = btnPhucHoi.Enabled = false; vitriLop = cmbLop.SelectedIndex; reload(); cmbLop.SelectedIndex = vitriLop; } else { if (st.Count == 0) { return; } Program.ObjectUndo objUndo = (Program.ObjectUndo)st.Peek(); Object obj = objUndo.obj; switch (objUndo.type) { case Program.THEM: if (MessageBox.Show("Khôi phục sau khi thêm", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } st.Pop(); String maSV = ""; try { maSV = obj.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message); } xuLyXoaSinhVien(false, maSV); updateUIButtonPhucHoi(); break; case Program.HIEU_CHINH: if (MessageBox.Show("Khôi phục sau khi hiệu chỉnh", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } st.Pop(); try { SinhVien sv = (SinhVien)objUndo.obj; xuLyHieuChinh(sv.maSinhVien, sv.hoSinhVien, sv.tenSinhVien, sv.phaiSinhVien, sv.ngaySinh, sv.noiSinh, sv.diaChi, sv.nghiHoc); updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; case Program.XOA: if (MessageBox.Show("Khôi phục sau khi xóa", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } st.Pop(); try { SinhVien svXoa = (SinhVien)objUndo.obj; xuLyThem(false, svXoa.maSinhVien, svXoa.hoSinhVien, svXoa.tenSinhVien, svXoa.maLop, svXoa.phaiSinhVien, svXoa.ngaySinh, svXoa.noiSinh, svXoa.diaChi, svXoa.nghiHoc); updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; } } }
private void xuLyXoaSinhVien(bool haveUndo, String maSV) { if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenh = "dbo.sp_KiemTraMaSV"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenh; Program.sqlcmd.Parameters.Add("@MASV", SqlDbType.Text).Value = txtMaSV.Text.Trim(); Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); String Ret = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (Ret == "0") { MessageBox.Show("Mã sinh viên không tồn tại", "", MessageBoxButtons.OK); Program.conn.Close(); return; } if (MessageBox.Show("Bạn có thật sự muốn xóa nhân viên có mã " + maSV + " ??", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.OK) { try { DataRowView dataRow = (DataRowView)DsSinhVienTheoLopBindingSource[DsSinhVienTheoLopBindingSource.Position]; String maSv = dataRow["MASV"].ToString(); String hoSv = dataRow["HO"].ToString(); String tenSv = dataRow["TEN"].ToString(); String maLop = dataRow["MALOP"].ToString(); bool phaiSv = Boolean.Parse(dataRow["PHAI"].ToString()); String ngaySinh = txtNgaySinhSV.Text.ToString(); String noiSinh = dataRow["NOISINH"].ToString(); String diaChi = dataRow["DIACHI"].ToString(); bool nghiHoc = Boolean.Parse(dataRow["NGHIHOC"].ToString()); SinhVien svRemove = new SinhVien(maSV, hoSv, tenSv, phaiSv, Program.convertStringToDateTime(ngaySinh), noiSinh, diaChi, nghiHoc); svRemove.maLop = maLop; Program.ObjectUndo obj = new Program.ObjectUndo(Program.XOA, svRemove); this.DsSinhVienTheoLopTableAdapter.Connection.ConnectionString = Program.connstr; int result = this.DsSinhVienTheoLopTableAdapter.Delete(maSV); if (result == 1) { if (haveUndo) { MessageBox.Show("Xóa sinh viên thành công", "", MessageBoxButtons.OK); } else { MessageBox.Show("Phục hồi thành công", "", MessageBoxButtons.OK); } } else { if (haveUndo) { MessageBox.Show("Xóa sinh viên bị lỗi", "", MessageBoxButtons.OK); } else { MessageBox.Show("Phục hồi bị lỗi", "", MessageBoxButtons.OK); } } vitriLop = cmbLop.SelectedIndex; reload(); cmbLop.SelectedIndex = vitriLop; if (haveUndo) { st.Push(obj); updateUIButtonPhucHoi(); } } catch (Exception ex) { MessageBox.Show("Lỗi xóa sinh viên. Bạn hãy xóa lại\n" + ex.Message, "", MessageBoxButtons.OK); initSinhVienList(); DsSinhVienTheoLopBindingSource.Position = DsSinhVienTheoLopBindingSource.Find("MASV", txtMaSV.Text.Trim()); return; } } }
private void xuLyThem(bool haveUndo, String maSV, String ho, String ten, String maLop, bool phai, DateTime ngaySinh, String noiSinh, String diaChi, bool nghiHoc) { if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenh = "dbo.sp_KiemTraMaSV"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenh; Program.sqlcmd.Parameters.Add("@MASV", SqlDbType.Text).Value = maSV; Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); String Ret = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (Ret == "1") { MessageBox.Show("Mã sinh viên bị trùng!", "", MessageBoxButtons.OK); txtMaSV.Focus(); Program.conn.Close(); return; } try { DsSinhVienTheoLopBindingSource.EndEdit(); DsSinhVienTheoLopBindingSource.ResetCurrentItem(); this.DsSinhVienTheoLopTableAdapter.Connection.ConnectionString = Program.connstr; this.DsSinhVienTheoLopTableAdapter.Insert(maSV, ho, ten, maLop, phai, ngaySinh, noiSinh, diaChi, nghiHoc); vitriLop = cmbLop.SelectedIndex; reload(); cmbLop.SelectedIndex = vitriLop; if (haveUndo) { MessageBox.Show("Thêm sinh viên thành công", "", MessageBoxButtons.OK); } else { MessageBox.Show("Phục hồi thành công", "", MessageBoxButtons.OK); } if (haveUndo) { Program.ObjectUndo obj = new Program.ObjectUndo(Program.THEM, maSV); st.Push(obj); } updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show("Lỗi ghi sinh viên.\n" + ex.Message, "", MessageBoxButtons.OK); return; } gcSinhVien.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnThoat.Enabled = true; cmbLop.Enabled = true; updateUIcmbKhoa(); btnGhi.Enabled = false; panelDetail.Enabled = false; }
private void btnPhucHoi_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnHieuChinh.Enabled == false || btnThem.Enabled == false) { bdsDsLop.CancelEdit(); this.lOPTableAdapter.Connection.ConnectionString = Program.connstr; if (btnThem.Enabled == false) { bdsDsLop.Position = vitri; } gcLop.Enabled = true; groupBox1.Enabled = false; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = btnPhucHoi.Enabled = false; reload(); } else { if (st.Count == 0) { return; } Program.ObjectUndo objUndo = (Program.ObjectUndo)st.Peek(); Object obj = objUndo.obj; switch (objUndo.type) { case Program.THEM: if (MessageBox.Show("Khôi phục sau khi thêm", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } st.Pop(); String lenh = ""; try { lenh = obj.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message); } Program.ExecSqlDataReader(lenh); this.lOPTableAdapter.Fill(this.dS.LOP); updateUIButtonPhucHoi(); break; case Program.HIEU_CHINH: if (MessageBox.Show("Khôi phục sau khi hiệu chỉnh", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } st.Pop(); try { Lop lopHieuChinh = (Lop)objUndo.obj; MessageBox.Show(lopHieuChinh.tenLop); if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenh = "dbo.sp_UndoHieuChinh"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenh; Program.sqlcmd.Parameters.Add("@maLop", SqlDbType.Text).Value = lopHieuChinh.maLop; Program.sqlcmd.Parameters.Add("@tenLop", SqlDbType.Text).Value = lopHieuChinh.tenLop; Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); reload(); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; case Program.XOA: if (MessageBox.Show("Khôi phục sau khi xóa", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } st.Pop(); try { Lop lopXoa = (Lop)objUndo.obj; String sql = "exec sp_InsertLop N'" + lopXoa.maLop + "', N'" + lopXoa.tenLop + "', N'" + maKhoa + "'"; DataTable tb = Program.ExecSqlDataTable(sql); if (tb.Rows.Count > 0) { MessageBox.Show("Undo success"); } else { MessageBox.Show("Undo failed"); } reload(); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; } } }
private void btnGhi_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { switch (choose) { case Program.THEM: if (!checkInfoAvailable()) { return; } if (!kiemTraMaLop(txtMaLop.Text)) { MessageBox.Show("Mã lớp bị trùng!", "", MessageBoxButtons.OK); txtMaLop.Focus(); Program.conn.Close(); return; } if (!kiemTraTenLop(txtTenLop.Text)) { MessageBox.Show("Tên lớp bị trùng !"); txtTenLop.Focus(); return; } try { bdsDsLop.EndEdit(); bdsDsLop.ResetCurrentItem(); this.lOPTableAdapter.Connection.ConnectionString = Program.connstr; this.lOPTableAdapter.Update(this.dS.LOP); MessageBox.Show("Thêm lớp thành công", "", MessageBoxButtons.OK); String lenh = "exec sp_UndoThemLop '" + txtMaLop.Text + "'"; Program.ObjectUndo obj = new Program.ObjectUndo(Program.THEM, lenh); st.Push(obj); updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show("Lỗi ghi lớp.\n" + ex.Message, "", MessageBoxButtons.OK); return; } gcLop.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = false; groupBox1.Enabled = false; break; case Program.HIEU_CHINH: String tenLop = ((DataRowView)bdsDsLop[vitri])["TENLOP"].ToString().Trim(); if (txtTenLop.Text.Trim().Equals(tenLop)) { if (MessageBox.Show("Bạn đã không thay đổi gì, bạn có muốn thoát chỉnh sửa ?", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.OK) { gcLop.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = false; groupBox1.Enabled = false; } return; } if (!checkInfoAvailable()) { return; } if (!kiemTraTenLop(txtTenLop.Text)) { MessageBox.Show("Tên lớp bị trùng !"); txtTenLop.Focus(); return; } Program.ObjectUndo objHieuChinh = new Program.ObjectUndo(Program.HIEU_CHINH, lop); st.Push(objHieuChinh); updateUIButtonPhucHoi(); try { bdsDsLop.EndEdit(); bdsDsLop.ResetCurrentItem(); this.lOPTableAdapter.Connection.ConnectionString = Program.connstr; this.lOPTableAdapter.Update(this.dS.LOP); MessageBox.Show("Hiệu chỉnh thành công", "", MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show("Lỗi hiệu chỉnh lớp.\n" + ex.Message, "", MessageBoxButtons.OK); return; } gcLop.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = false; groupBox1.Enabled = false; break; } }
private void btnGhi_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { switch (choose) { case Program.THEM: if (txtMaMH.Text.Trim() == "") { MessageBox.Show("Mã môn học không được thiếu!", "", MessageBoxButtons.OK); txtMaMH.Focus(); return; } if (txtTenMH.Text.Trim() == "") { MessageBox.Show("Tên môn học không được thiếu!", "", MessageBoxButtons.OK); txtTenMH.Focus(); return; } if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenh = "dbo.sp_TIMMONHOC"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenh; Program.sqlcmd.Parameters.Add("@X", SqlDbType.Text).Value = txtMaMH.Text; Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); String Ret = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (Ret == "1") { MessageBox.Show("Mã môn học bị trùng!", "", MessageBoxButtons.OK); txtMaMH.Focus(); Program.conn.Close(); return; } String strLenhKiemTra = "dbo.sp_KiemTraTenMonHoc"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenhKiemTra; Program.sqlcmd.Parameters.Add("@TENMH", SqlDbType.Text).Value = convertStringToUTF8(txtTenMH.Text.Trim()); Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); String RetKiemTra = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (RetKiemTra == "1") { MessageBox.Show("Tên môn học bị trùng!", "", MessageBoxButtons.OK); txtTenMH.Focus(); return; } try { mONHOCBindingSource.EndEdit(); mONHOCBindingSource.ResetCurrentItem(); this.mONHOCTableAdapter.Connection.ConnectionString = Program.connstr; this.mONHOCTableAdapter.Update(this.dS.MONHOC); MessageBox.Show("Thêm lớp thành công", "", MessageBoxButtons.OK); String lenh = "exec sp_UndoThemMonHoc '" + txtMaMH.Text + "'"; Program.ObjectUndo obj = new Program.ObjectUndo(Program.THEM, lenh); st.Push(obj); updateUIButtonPhucHoi(); } catch (Exception ex) { MessageBox.Show("Lỗi ghi nhân viên.\n" + ex.Message, "", MessageBoxButtons.OK); return; } gcMonHoc.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = false; groupBox1.Enabled = false; break; case Program.HIEU_CHINH: String tenMH = ((DataRowView)mONHOCBindingSource[vitri])["TENMH"].ToString().Trim(); if (txtTenMH.Text.Trim().Equals(tenMH)) { if (MessageBox.Show("Bạn đã không thay đổi gì, bạn có muốn thoát chỉnh sửa ?", "Xác nhận", MessageBoxButtons.OKCancel) == DialogResult.OK) { gcMonHoc.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = false; groupBox1.Enabled = false; } return; } if (txtTenMH.Text.Trim() == "") { MessageBox.Show("Tên môn học không được thiếu!", "", MessageBoxButtons.OK); txtTenMH.Focus(); return; } if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenhKiemTraTenLop = "dbo.sp_KiemTraTenMonHoc"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenhKiemTraTenLop; Program.sqlcmd.Parameters.Add("@TENMH", SqlDbType.Text).Value = convertStringToUTF8(txtTenMH.Text.Trim()); Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); String RetKiemTraTenLop = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (RetKiemTraTenLop == "1") { MessageBox.Show("Tên lớp bị trùng!", "", MessageBoxButtons.OK); txtTenMH.Focus(); return; } try { mONHOCBindingSource.EndEdit(); mONHOCBindingSource.ResetCurrentItem(); this.mONHOCTableAdapter.Connection.ConnectionString = Program.connstr; this.mONHOCTableAdapter.Update(this.dS.MONHOC); MessageBox.Show("Update thành công", "", MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show("Lỗi hiệu chỉnh nhân viên.\n" + ex.Message, "", MessageBoxButtons.OK); return; } gcMonHoc.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = false; groupBox1.Enabled = false; break; } }
private void btnPhucHoi_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (btnHieuChinh.Enabled == false || btnThem.Enabled == false) { mONHOCBindingSource.CancelEdit(); this.mONHOCTableAdapter.Connection.ConnectionString = Program.connstr; if (btnThem.Enabled == false) { mONHOCBindingSource.Position = vitri; } gcMonHoc.Enabled = true; groupBox1.Enabled = false; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnExit.Enabled = true; btnGhi.Enabled = btnPhucHoi.Enabled = false; reload(); } else { if (st.Count == 0) { return; } Program.ObjectUndo objUndo = (Program.ObjectUndo)st.Pop(); Object obj = objUndo.obj; switch (objUndo.type) { case Program.THEM: MessageBox.Show("Khôi phục sau khi thêm"); String lenh = ""; try { lenh = obj.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message); } Program.ExecSqlDataReader(lenh); this.mONHOCTableAdapter.Fill(this.dS.MONHOC); updateUIButtonPhucHoi(); break; case Program.HIEU_CHINH: MessageBox.Show("Khôi phục sau khi hiệu chỉnh"); try { MonHoc mhChinh = (MonHoc)objUndo.obj; MessageBox.Show(mhChinh.tenMonHoc); if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenh = "dbo.sp_UndoHieuChinhMonHoc"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenh; Program.sqlcmd.Parameters.Add("@MAMH", SqlDbType.Text).Value = mhChinh.maMonHoc; Program.sqlcmd.Parameters.Add("@TENMH", SqlDbType.Text).Value = convertStringToUTF8(mhChinh.tenMonHoc); Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); reload(); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; case Program.XOA: MessageBox.Show("Khôi phục sau khi xóa"); try { MonHoc mhXoa = (MonHoc)objUndo.obj; if (Program.conn.State == ConnectionState.Closed) { Program.conn.Open(); } String strLenh = "dbo.sp_InsertMonHoc"; Program.sqlcmd = Program.conn.CreateCommand(); Program.sqlcmd.CommandType = CommandType.StoredProcedure; Program.sqlcmd.CommandText = strLenh; Program.sqlcmd.Parameters.Add("@MAMH", SqlDbType.Text).Value = mhXoa.maMonHoc; Program.sqlcmd.Parameters.Add("@TENMH", SqlDbType.Text).Value = convertStringToUTF8(mhXoa.tenMonHoc); Program.sqlcmd.Parameters.Add("@Ret", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; Program.sqlcmd.ExecuteNonQuery(); Program.conn.Close(); String Ret = Program.sqlcmd.Parameters["@Ret"].Value.ToString(); if (Ret == "1") { MessageBox.Show("Undo success"); } else { MessageBox.Show("Undo failed"); } reload(); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; } } }