private void xuLyHieuChinh(String maSV, String ho, String ten, bool phaiSV, DateTime ngaySinh, String noiSinh, String diaChi, bool nghiHoc) { try { DsSinhVienTheoLopBindingSource.EndEdit(); DsSinhVienTheoLopBindingSource.ResetCurrentItem(); this.DsSinhVienTheoLopTableAdapter.Connection.ConnectionString = Program.connstr; this.DsSinhVienTheoLopTableAdapter.Update(maSV, ho, ten, phaiSV, ngaySinh, noiSinh, diaChi, nghiHoc); MessageBox.Show("Hiệu chỉnh thành công", "", MessageBoxButtons.OK); } catch (Exception ex) { MessageBox.Show("Lỗi hiệu chỉnh sinh viên.\n" + ex.Message, "", MessageBoxButtons.OK); return; } gcSinhVien.Enabled = true; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnThoat.Enabled = true; btnGhi.Enabled = false; panelDetail.Enabled = false; vitriLop = cmbLop.SelectedIndex; reload(); cmbLop.SelectedIndex = vitriLop; }
private void btnThem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { vitri = DsSinhVienTheoLopBindingSource.Position; panelDetail.Enabled = true; DsSinhVienTheoLopBindingSource.AddNew(); checkPhaiSV.Checked = false; checkNghiHoc.Checked = false; btnThem.Enabled = btnHieuChinh.Enabled = btnXoa.Enabled = btnReload.Enabled = btnThoat.Enabled = false; btnGhi.Enabled = true; gcSinhVien.Enabled = false; choose = Program.THEM; btnPhucHoi.Enabled = true; panelDetail.Enabled = true; cmbKhoaSV.Enabled = cmbLop.Enabled = false; }
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; }