/// <summary> /// Kiểm tra hợp lệ các cột điểm trên 1 dòng của bảng điểm BangDiemDTO /// </summary> /// <param name="bd">BangDiemDTO</param> /// <returns>Bool</returns> public bool KiemTraHopLe_DataRow_Lop_MonHoc_HocKy(BangDiemDTO bd) { const int diemNull = -1; string msg = ""; if (bd.DM_1 == diemNull && bd.DM_2 == diemNull) { msg = "miệng"; } else if (bd.D15_1 == diemNull && bd.D15_2 == diemNull && bd.D15_3 == diemNull && bd.D15_4 == diemNull) { msg = "15 phút"; } else if (bd.D1T_1 == diemNull && bd.D1T_2 == diemNull) { msg = "1 tiết"; } else if (bd.DThi == diemNull) { msg = "cuối kỳ"; } if (!msg.Equals("")) { msg = "Bạn chưa nhập cột điểm " + msg + " cho học sinh " + bd.HocSinh.TenHocSinh + " (" + bd.HocSinh.MaHocSinh + ")."; } if (msg != "") { ExceptionUtil.Throw(msg); return(false); } return(true); }
/// <summary> /// Tính điểm trung bình môn trên 1 dòng bảng điểm /// </summary> /// <param name="bd">BangDiemDTO (Quy định: VỚi điểm == -1 xem như chưa nhập</param> /// <returns>double: Điểm trung bình</returns> public double TinhDTB_DataRow_Lop_MonHoc_HocKy(BangDiemDTO bd) { int soCotM = 0, soCot15 = 0, soCot1T = 0; double tongM = 0, tong15 = 0, tong1T = 0; // Đếm cột miệng nhập if (bd.DM_1 >= 0) { tongM += bd.DM_1; soCotM++; } if (bd.DM_2 >= 0) { tongM += bd.DM_2; soCotM++; } // Đếm cột 15' nhập if (bd.D15_1 >= 0) { tong15 += bd.D15_1; soCot15++; } if (bd.D15_2 >= 0) { tong15 += bd.D15_2; soCot15++; } if (bd.D15_3 >= 0) { tong15 += bd.D15_3; soCot15++; } if (bd.D15_4 >= 0) { tong15 += bd.D15_4; soCot15++; } // Đếm số cột 1T if (bd.D1T_1 >= 0) { tong1T += bd.D1T_1; soCot1T++; } if (bd.D1T_2 >= 0) { tong1T += bd.D1T_2; soCot1T++; } double tongDiem = (tong15 / soCot15) * 1 // 15' hệ số 1 + (tongM / soCotM) * 1 // M hệ số 1 + (tong1T / soCot1T) * 2 // 1T hệ số 2 + bd.DThi * 3; return(ObjectUtil.LamTron(tongDiem / 7)); }
/// <summary> /// Xóa bảng điểm 1 môn học / 1 học sinh / 1 học kỳ / 1 lớp / 1 năm học /// </summary> /// <param name="bd">BangDiemDTO</param> /// <returns>bool</returns> public bool XoaBangDiem_MonHoc_HocSinh_HocKy(BangDiemDTO bd) { string sql = string.Format("UPDATE BANGDIEM SET DM_1 = NULL, DM_2 = NULL, D15_1 = NULL, D15_2 = NULL, " + "D15_3 = NULL, D15_4 = NULL, D1T_1 = NULL, D1T_2 = NULL, DThi = NULL, DTB = NULL " + "WHERE MaHocSinh = '{0}' " + "AND MaLop = '{1}' AND MaHocKy = {2} AND MaMonHoc = '{3}'", bd.HocSinh.MaHocSinh, bd.LopDTO.MaLop, bd.MaHocKy, bd.MonHoc.MaMonHoc); return(ExecuteQuery(sql) > 0); }
public List <BangDiemDTO> Search(string searchValue) { List <BangDiemDTO> list = new List <BangDiemDTO>(); DataTable data = DataProvider.Instance.ExecuteQuery("SP_BangDiem_Search @searchValue", new object[] { searchValue }); foreach (DataRow item in data.Rows) { BangDiemDTO entry = new BangDiemDTO(item); list.Add(entry); } return(list); }
public List <BangDiemDTO> GetByIdMonHoc(int idMonHoc) { List <BangDiemDTO> list = new List <BangDiemDTO>(); DataTable data = DataProvider.Instance.ExecuteQuery("SP_BangDiem_GetByIdMonHoc @idMonHoc", new object[] { idMonHoc }); foreach (DataRow item in data.Rows) { BangDiemDTO entry = new BangDiemDTO(item); list.Add(entry); } return(list); }
public List <BangDiemDTO> GetAll() { List <BangDiemDTO> list = new List <BangDiemDTO>(); DataTable data = DataProvider.Instance.ExecuteQuery("SP_BangDiem_GetAll"); foreach (DataRow item in data.Rows) { BangDiemDTO entry = new BangDiemDTO(item); list.Add(entry); } return(list); }
private void advBandedGridView1_ValidateRow(object sender, ValidateRowEventArgs e) { DataRow dr = advBandedGridView1.GetDataRow(e.RowHandle); var bangDiem = new BangDiemDTO { HocSinh = { MaHocSinh = dr["MaHocSinh"].ToString(), TenHocSinh = dr["TenHocSinh"].ToString() }, MaHocKy = Convert.ToInt32(CboUtil.GetValueItem(comboBoxEditHocKy)), MonHoc = { MaMonHoc = CboUtil.GetValueItem(comboBoxEditMonHoc) }, LopDTO = { MaLop = treeListLopHoc.FocusedNode.GetValue("MaKhoi").ToString() }, DM_1 = dr["DM_1"] is DBNull ? -1 : Convert.ToDouble(dr["DM_1"]), DM_2 = dr["DM_2"] is DBNull ? -1 : Convert.ToDouble(dr["DM_2"]), D15_1 = dr["D15_1"] is DBNull ? -1 : Convert.ToDouble(dr["D15_1"]), D15_2 = dr["D15_2"] is DBNull ? -1 : Convert.ToDouble(dr["D15_2"]), D15_3 = dr["D15_3"] is DBNull ? -1 : Convert.ToDouble(dr["D15_3"]), D15_4 = dr["D15_4"] is DBNull ? -1 : Convert.ToDouble(dr["D15_4"]), D1T_1 = dr["D1T_1"] is DBNull ? -1 : Convert.ToDouble(dr["D1T_1"]), D1T_2 = dr["D1T_2"] is DBNull ? -1 : Convert.ToDouble(dr["D1T_2"]), DThi = dr["DThi"] is DBNull ? -1 : Convert.ToDouble(dr["DThi"]), DTB = dr["DTB"] is DBNull ? -1 : Convert.ToDouble(dr["DTB"]) }; try { // Kiểm tra điểm hợp lệ trên 1 dòng _bangDiemBUS.KiemTraHopLe_DataRow_Lop_MonHoc_HocKy(bangDiem); // Tính điểm trung bình double dTbBangdiem = _bangDiemBUS.TinhDTB_DataRow_Lop_MonHoc_HocKy(bangDiem); bangDiem.DTB = dTbBangdiem; // Gán và hiển thị cột DTB advBandedGridView1.SetRowCellValue(e.RowHandle, "DTB", dTbBangdiem); // Lưu vào CSDL _bangDiemBUS.LuuBangDiem_HocSinh_MonHoc_HocKy(bangDiem); } catch (Exception ex) { if (MsgboxUtil.YesNo(ex.Message + "\nBạn có muốn bỏ dòng này và nhập lại lần sau hay không?") == DialogResult.No) { e.Valid = false; } else { _bangDiemBUS.XoaBangDiem_HocSinh_MonHoc_HocKy(bangDiem); HienThi_Lai_BangDiem(); } } }
/// <summary> /// Lưu bảng điểm 1 môn học / 1 học sinh / 1 học kỳ / 1 lớp / 1 năm học /// </summary> /// <param name="bd">BangDiemDTO</param> /// <returns>Bool</returns> public bool LuuBangDiem_MonHoc_HocSinh_HocKy(BangDiemDTO bd) { const int diemNull = -1; string sql = string.Format("UPDATE BANGDIEM SET DM_1 = {1}, DM_2 = {2}, D15_1 = {3}, D15_2 = {4}, " + "D15_3 = {5}, D15_4 = {6}, D1T_1 = {7}, D1T_2 = {8}, DThi = {9}, DTB = {10} " + "WHERE MaHocSinh = '{0}' AND MaHocKy = '{11}' AND MaLop = '{12}'", bd.HocSinh.MaHocSinh, (bd.DM_1 == diemNull) ? "NULL" : bd.DM_1.ToString(), (bd.DM_2 == diemNull) ? "NULL" : bd.DM_2.ToString(), (bd.D15_1 == diemNull) ? "NULL" : bd.D15_1.ToString(), (bd.D15_2 == diemNull) ? "NULL" : bd.D15_2.ToString(), (bd.D15_3 == diemNull) ? "NULL" : bd.D15_3.ToString(), (bd.D15_4 == diemNull) ? "NULL" : bd.D15_4.ToString(), (bd.D1T_1 == diemNull) ? "NULL" : bd.D1T_1.ToString(), (bd.D1T_2 == diemNull) ? "NULL" : bd.D1T_2.ToString(), (bd.DThi == diemNull) ? "NULL" : bd.DThi.ToString(), (bd.DTB == diemNull) ? "NULL" : bd.DTB.ToString(), bd.MaHocKy, bd.LopDTO.MaLop); return(ExecuteQuery(sql) > 0); }
/// <summary> /// Xóa bảng điểm 1 môn học / 1 học sinh / 1 học kỳ / 1 lớp / 1 năm học /// </summary> /// <param name="bd">BangDiemDTO</param> /// <returns>bool</returns> public bool XoaBangDiem_HocSinh_MonHoc_HocKy(BangDiemDTO bd) { return(_bangDiemDAL.XoaBangDiem_MonHoc_HocSinh_HocKy(bd)); }