private void btOK_Click(object sender, RoutedEventArgs e) { if (tbLop.Text != "" && tbLop.Text.Substring(0, 3).ToUpper() == "10A" || tbLop.Text != "" && tbLop.Text.Length > 4 || tbLop.Text != "" && tbLop.Text.Length < 5 || tbLop.Text != "" && tbLop.Text.Substring(0, 3).ToUpper() == "11A" || tbLop.Text != "" && tbLop.Text.Substring(0, 3).ToUpper() == "12A") { //Kiếm các lớp có trong CSDL MyEntity db = new MyEntity(); var lops = (from lopNao in db.THocSinhs select lopNao.LopCuaHS).Distinct(); List <string> dslops = lops.ToList(); bool chuaCoTrongCSDL = true; foreach (var lop in dslops) { if (tbLop.Text.ToUpper() == lop.ToUpper()) { chuaCoTrongCSDL = false; //Kiểm tra xem lớp đó đã có giáo viên nào dạy môn này chưa? var kiemTra = (from coChua in db.TGiaoVienDayHocSinhs where coChua.MaLopCuaSV == tbLop.Text.ToUpper() select coChua.MonMaLopDuocDay).Distinct(); List <string> cacMonDuocDay = kiemTra.ToList(); bool chuaCoAiDay = true; if (cacMonDuocDay.Count != 0) { foreach (var mon in cacMonDuocDay) { if (monDayTrongNay == mon) { chuaCoAiDay = false; break; } } if (chuaCoAiDay) { GiaoVienDayHocSinh a = new GiaoVienDayHocSinh(maGVTrongNay, tbLop.Text.ToUpper(), monDayTrongNay); db.TGiaoVienDayHocSinhs.Add(a); break; } else { MessageBox.Show("Lớp này đã có giáo viên dạy môn: " + monDayTrongNay, "Thông báo!!!", MessageBoxButton.OK, MessageBoxImage.Information); break; } } else { chuaCoTrongCSDL = false; GiaoVienDayHocSinh a = new GiaoVienDayHocSinh(maGVTrongNay, tbLop.Text.ToUpper(), monDayTrongNay); db.TGiaoVienDayHocSinhs.Add(a); } } } //Chưa có trong CSDL thì cho người dùng tùy chọn thêm hoặc không if (chuaCoTrongCSDL) { if (MessageBox.Show("Vẫn chưa có lớp đó trong CSDL bạn muốn nhập file?", "Thông báo!!!", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) == MessageBoxResult.Yes) { //Mở ra giao diện chọn file OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Các tệp Excel (*.xls;*.xlsx)|*.xls;*.xlsx|All files (*.*)|*.*"; openFileDialog.ShowDialog(); //Xử lí //Tạo cái list để tạm lưu trữ thông tin học sinh , điểm và loại điểm List <HocSinh> hocSinhs = new List <HocSinh>(); List <Diem> diems = new List <Diem>(); List <LoaiDiemCuaTungMon> loaiDiemCuaTungMons = new List <LoaiDiemCuaTungMon>(); if (openFileDialog.FileName != "") { //Tạo đối tượng Excel Excel.Application app = new Excel.Application(); //Mở file Excel Học Sinh Excel.Workbook wb = app.Workbooks.Open(openFileDialog.FileName); //Mở sheet đầu tiên là sheet thông tin học sinh try { //Trong này chỉ số đầu tiên bắt đầu từ 1 Excel._Worksheet sheetCanMo = wb.Sheets[1]; //Truy cập vùng dữ liệu sử dụng Excel.Range range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu int dong = range.Rows.Count; //Chúng ta bắt đầu đọc dữ liệu từ dòng 2 vì dòng 1 là tiêu đề for (int i = 2; i <= dong; i++) { HocSinh a = new HocSinh(range.Cells[i, 1].Value.ToString().ToUpper(), range.Cells[i, 2].Value.ToString(), range.Cells[i, 3].Value, range.Cells[i, 4].Value.ToString(), range.Cells[i, 5].Value.ToString(), range.Cells[i, 6].Value.ToString(), tbLop.Text); //Còn thiếu điểm TB và học lực hocSinhs.Add(a); } //Tiếp theo kiểm tra mã của môn giáo viên này dạy var mons = from monNao in db.TMonHocs where monNao.TenMH == monDayTrongNay select monNao.MaMH; List <string> monTimDC = mons.ToList(); string maMonDay = monTimDC[0]; //Mở sheet tiếp theo là điểm Môn giáo viên này dạy sheetCanMo = wb.Sheets[2]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { //Ta có được các loại điểm của 1 học sinh LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("D" + maMonDay + "15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "D" + maMonDay + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("D" + maMonDay + "45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "D" + maMonDay + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("D" + maMonDay + "HK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "D" + maMonDay + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); //Ta có được điểm trung bình của loại điểm đó Diem diemMH = new Diem(); diemMH.MaDiem = "D" + maMonDay + range.Cells[i, 1].Value.ToString().ToUpper(); diemMH.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemMH.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemMH); } //Thêm vào CSDL foreach (var hocSinh in hocSinhs) { db.THocSinhs.Add(hocSinh); //Tìm các điểm của HS này List <Diem> listDiemCuaHocSinh = new List <Diem>(); foreach (var diem in diems) { if (diem.MaHSCuaDiemA == hocSinh.MaSoHS) { listDiemCuaHocSinh.Add(diem); } } foreach (var diemCuaHSNay in listDiemCuaHocSinh) { db.TDiems.Add(diemCuaHSNay); } //Tìm các loại điểm của học sinh này List <LoaiDiemCuaTungMon> listLoaiDiemTungMon = new List <LoaiDiemCuaTungMon>(); foreach (var loaiDiem in loaiDiemCuaTungMons) { if (loaiDiem.MaDiemCuaLoaiDiem.Substring(3).ToUpper() == hocSinh.MaSoHS.ToUpper()) { listLoaiDiemTungMon.Add(loaiDiem); } } foreach (var loaiDiemHSNay in listLoaiDiemTungMon) { db.TLoaiDiemCuaTungMons.Add(loaiDiemHSNay); } db.SaveChanges(); } MessageBox.Show("Thêm thành công!", "Thông báo!!!", MessageBoxButton.OK, MessageBoxImage.Information); GiaoVienDayHocSinh lienKetMoi = new GiaoVienDayHocSinh(maGVTrongNay, tbLop.Text.ToUpper(), monDayTrongNay); db.TGiaoVienDayHocSinhs.Add(lienKetMoi); db.SaveChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Có lỗi xảy ra!!!", MessageBoxButton.OK, MessageBoxImage.Error); } finally { app.Quit(); wb = null; } } } } db.SaveChanges(); Close(); } else { if (MessageBox.Show("Mã lớp không hợp lệ!", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK) == MessageBoxResult.OK) { tbLop.Text = ""; tbLop.Focus(); } } }
private void btNhapFile_Click(object sender, RoutedEventArgs e) { //Mở ra giao diện chọn file OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Các tệp Excel (*.xls;*.xlsx)|*.xls;*.xlsx|All files (*.*)|*.*"; openFileDialog.ShowDialog(); //Xử lí //Tạo cái list để tạm lưu trữ thông tin học sinh , điểm và loại điểm List <HocSinh> hocSinhs = new List <HocSinh>(); List <Diem> diems = new List <Diem>(); List <LoaiDiemCuaTungMon> loaiDiemCuaTungMons = new List <LoaiDiemCuaTungMon>(); MyEntity db = new MyEntity(); if (openFileDialog.FileName != "") { //Tạo đối tượng Excel Excel.Application app = new Excel.Application(); //Mở file Excel Học Sinh Excel.Workbook wb = app.Workbooks.Open(openFileDialog.FileName); try { //Mở sheet đầu tiên là sheet thông tin học sinh //Trong này chỉ số đầu tiên bắt đầu từ 1 Excel._Worksheet sheetCanMo = wb.Sheets[1]; //Truy cập vùng dữ liệu sử dụng Excel.Range range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu int dong = range.Rows.Count; //Chúng ta bắt đầu đọc dữ liệu từ dòng 2 vì dòng 1 là tiêu đề for (int i = 2; i <= dong; i++) { HocSinh a = new HocSinh(range.Cells[i, 1].Value.ToString().ToUpper(), range.Cells[i, 2].Value.ToString(), range.Cells[i, 3].Value, range.Cells[i, 4].Value.ToString(), range.Cells[i, 5].Value.ToString(), range.Cells[i, 6].Value.ToString(), lopCuaHSTrongNay); //Còn thiếu điểm TB và học lực hocSinhs.Add(a); } //Mở sheet tiếp theo là điểm Toán sheetCanMo = wb.Sheets[2]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { //Ta có được các loại điểm của 1 học sinh LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DTO15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DTO" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DTO45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DTO" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DTOHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DTO" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); //Ta có được điểm trung bình của loại điểm đó Diem diemTO = new Diem(); diemTO.MaDiem = "DTO" + range.Cells[i, 1].Value.ToString().ToUpper(); diemTO.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemTO.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemTO); } //Mở sheet tiếp theo là điểm Ngữ văn sheetCanMo = wb.Sheets[3]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DNV15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DNV" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DNV45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DNV" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DNVHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DNV" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemNV = new Diem(); diemNV.MaDiem = "DNV" + range.Cells[i, 1].Value.ToString().ToUpper(); diemNV.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemNV.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemNV); } //Mở sheet tiếp theo là điểm Sinh sheetCanMo = wb.Sheets[4]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DSI15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DSI" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DSI45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DSI" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DSIHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DSI" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemSI = new Diem(); diemSI.MaDiem = "DSI" + range.Cells[i, 1].Value.ToString().ToUpper(); diemSI.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemSI.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemSI); } //Mở sheet tiếp theo là điểm Ngữ văn sheetCanMo = wb.Sheets[5]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DVL15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DVL" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DVL45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DVL" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DVLHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DVL" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemVL = new Diem(); diemVL.MaDiem = "DVL" + range.Cells[i, 1].Value.ToString().ToUpper(); diemVL.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemVL.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemVL); } //Mở sheet tiếp theo là điểm Hóa sheetCanMo = wb.Sheets[6]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DHO15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DHO" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DHO45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DHO" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DHOHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DHO" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemHO = new Diem(); diemHO.MaDiem = "DHO" + range.Cells[i, 1].Value.ToString().ToUpper(); diemHO.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemHO.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemHO); } //Mở sheet tiếp theo là điểm Sử sheetCanMo = wb.Sheets[7]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DSU15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DSU" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DSU45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DSU" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DSUHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DSU" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemSU = new Diem(); diemSU.MaDiem = "DSU" + range.Cells[i, 1].Value.ToString().ToUpper(); diemSU.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemSU.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemSU); } //Mở sheet tiếp theo là điểm Địa sheetCanMo = wb.Sheets[8]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DDI15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DDI" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DDI45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DDI" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DDIHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DDI" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemDI = new Diem(); diemDI.MaDiem = "DDI" + range.Cells[i, 1].Value.ToString().ToUpper(); diemDI.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemDI.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemDI); } //Mở sheet tiếp theo là điểm Ngoại ngữ sheetCanMo = wb.Sheets[9]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DNN15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DNN" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DNN45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DNN" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DNNHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DNN" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemNN = new Diem(); diemNN.MaDiem = "DNN" + range.Cells[i, 1].Value.ToString().ToUpper(); diemNN.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemNN.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemNN); } //Mở sheet tiếp theo là điểm Công dân sheetCanMo = wb.Sheets[10]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DCD15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DCD" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DCD45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DCD" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DCDHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DCD" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemCD = new Diem(); diemCD.MaDiem = "DCD" + range.Cells[i, 1].Value.ToString().ToUpper(); diemCD.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemCD.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemCD); } //Mở sheet tiếp theo là điểm Quốc phòng sheetCanMo = wb.Sheets[11]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DQP15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DQP" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DQP45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DQP" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DQPHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DQP" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemQP = new Diem(); diemQP.MaDiem = "DQP" + range.Cells[i, 1].Value.ToString().ToUpper(); diemQP.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemQP.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemQP); } //Mở sheet tiếp theo là điểm Thể dục sheetCanMo = wb.Sheets[12]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DTD15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DTD" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DTD45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DTD" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DTDHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DTD" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemTD = new Diem(); diemTD.MaDiem = "DTD" + range.Cells[i, 1].Value.ToString().ToUpper(); diemTD.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemTD.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemTD); } //Mở sheet tiếp theo là điểm Công nghệ sheetCanMo = wb.Sheets[13]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DCN15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DCN" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DCN45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DCN" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DCNHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DCN" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemCN = new Diem(); diemCN.MaDiem = "DCN" + range.Cells[i, 1].Value.ToString().ToUpper(); diemCN.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemCN.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemCN); } //Mở sheet tiếp theo là điểm Tin học sheetCanMo = wb.Sheets[14]; //Truy cập vùng dữ liệu sử dụng range = sheetCanMo.UsedRange; //Bắt đầu đọc dữ liệu dong = range.Rows.Count; for (int i = 2; i <= dong; i++) { LoaiDiemCuaTungMon diem15 = new LoaiDiemCuaTungMon("DTH15" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 2].Value.ToString()), "DTH" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem15); LoaiDiemCuaTungMon diem45 = new LoaiDiemCuaTungMon("DTH45" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 3].Value.ToString()), "DTH" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diem45); LoaiDiemCuaTungMon diemHK = new LoaiDiemCuaTungMon("DTHHK" + range.Cells[i, 1].Value.ToString().ToUpper(), double.Parse(range.Cells[i, 4].Value.ToString()), "DTH" + range.Cells[i, 1].Value.ToString().ToUpper()); loaiDiemCuaTungMons.Add(diemHK); Diem diemTH = new Diem(); diemTH.MaDiem = "DTH" + range.Cells[i, 1].Value.ToString().ToUpper(); diemTH.MaHSCuaDiemA = range.Cells[i, 1].Value.ToString().ToUpper(); diemTH.SoDiem = Math.Round((diem15.SoDiem + diem45.SoDiem * 2 + diemHK.SoDiem * 2) / 5, 2); diems.Add(diemTH); } //Chúng ta bắt đầu cập nhật ĐTB và Học lực cho từng học sinh foreach (var hocSinh in hocSinhs) { List <Diem> listDiemCuaHocSinh = new List <Diem>(); foreach (var diem in diems) { if (diem.MaHSCuaDiemA == hocSinh.MaSoHS) { listDiemCuaHocSinh.Add(diem); } } //Các loại điểm để xét học lực Diem diemToan = new Diem(); Diem diemNV = new Diem(); Diem diemSinh = new Diem(); Diem diemVatLy = new Diem(); Diem diemHoa = new Diem(); Diem diemSu = new Diem(); Diem diemDia = new Diem(); Diem diemNN = new Diem(); Diem diemCD = new Diem(); Diem diemQP = new Diem(); Diem diemTD = new Diem(); Diem diemCN = new Diem(); Diem diemTH = new Diem(); double diemTBHS = 0; foreach (var item in listDiemCuaHocSinh) { if (item.MaDiem.Substring(1, 2) == "TO") { diemToan = item; } else if (item.MaDiem.Substring(1, 2) == "NV") { diemNV = item; } else if (item.MaDiem.Substring(1, 2) == "SI") { diemSinh = item; } else if (item.MaDiem.Substring(1, 2) == "VL") { diemVatLy = item; } else if (item.MaDiem.Substring(1, 2) == "HO") { diemHoa = item; } else if (item.MaDiem.Substring(1, 2) == "SU") { diemSu = item; } else if (item.MaDiem.Substring(1, 2) == "DI") { diemDia = item; } else if (item.MaDiem.Substring(1, 2) == "NN") { diemNN = item; } else if (item.MaDiem.Substring(1, 2) == "CD") { diemCD = item; } else if (item.MaDiem.Substring(1, 2) == "QP") { diemQP = item; } else if (item.MaDiem.Substring(1, 2) == "TD") { diemTD = item; } else if (item.MaDiem.Substring(1, 2) == "CN") { diemCN = item; } else { diemTH = item; } } diemTBHS = Math.Round((diemToan.SoDiem * 2 + diemNV.SoDiem * 2 + diemSinh.SoDiem + diemVatLy.SoDiem + diemHoa.SoDiem + diemSu.SoDiem + diemDia.SoDiem + diemNN.SoDiem + diemCD.SoDiem + diemQP.SoDiem + diemTD.SoDiem + diemCN.SoDiem + diemTH.SoDiem) / 15, 2); //Cập nhật được điểm hocSinh.DiemTBCuaHS = diemTBHS; string hocLuc = ""; if (diemTBHS >= 8 && diemNV.SoDiem >= 8 && diemTH.SoDiem >= 6.5 && diemCN.SoDiem >= 6.5 && diemTD.SoDiem >= 6.5 && diemQP.SoDiem >= 6.5 && diemCD.SoDiem >= 6.5 && diemNN.SoDiem >= 6.5 && diemDia.SoDiem >= 6.5 && diemSu.SoDiem >= 6.5 && diemHoa.SoDiem >= 6.5 && diemToan.SoDiem >= 6.5 && diemSinh.SoDiem >= 6.5 && diemVatLy.SoDiem >= 6.5 || diemTBHS >= 8 && diemToan.SoDiem >= 8 && diemTH.SoDiem >= 6.5 && diemCN.SoDiem >= 6.5 && diemTD.SoDiem >= 6.5 && diemQP.SoDiem >= 6.5 && diemCD.SoDiem >= 6.5 && diemNN.SoDiem >= 6.5 && diemDia.SoDiem >= 6.5 && diemSu.SoDiem >= 6.5 && diemHoa.SoDiem >= 6.5 && diemNV.SoDiem >= 6.5 && diemSinh.SoDiem >= 6.5 && diemVatLy.SoDiem >= 6.5) { hocLuc = "Giỏi"; } else if (diemTBHS >= 6.5 && diemNV.SoDiem >= 6.5 && diemTH.SoDiem >= 5 && diemCN.SoDiem >= 5 && diemTD.SoDiem >= 5 && diemQP.SoDiem >= 5 && diemCD.SoDiem >= 5 && diemNN.SoDiem >= 5 && diemDia.SoDiem >= 5 && diemSu.SoDiem >= 5 && diemHoa.SoDiem >= 5 && diemToan.SoDiem >= 5 && diemSinh.SoDiem >= 5 && diemVatLy.SoDiem >= 5 || diemTBHS >= 6.5 && diemToan.SoDiem >= 6.5 && diemTH.SoDiem >= 5 && diemCN.SoDiem >= 5 && diemTD.SoDiem >= 5 && diemQP.SoDiem >= 5 && diemCD.SoDiem >= 5 && diemNN.SoDiem >= 5 && diemDia.SoDiem >= 5 && diemSu.SoDiem >= 5 && diemHoa.SoDiem >= 5 && diemNV.SoDiem >= 5 && diemSinh.SoDiem >= 5 && diemVatLy.SoDiem >= 5) { hocLuc = "Khá"; } else if (diemTBHS >= 5 && diemNV.SoDiem >= 5 && diemTH.SoDiem >= 3.5 && diemCN.SoDiem >= 3.5 && diemTD.SoDiem >= 3.5 && diemQP.SoDiem >= 3.5 && diemCD.SoDiem >= 3.5 && diemNN.SoDiem >= 3.5 && diemDia.SoDiem >= 3.5 && diemSu.SoDiem >= 3.5 && diemHoa.SoDiem >= 3.5 && diemToan.SoDiem >= 3.5 && diemSinh.SoDiem >= 3.5 && diemVatLy.SoDiem >= 3.5 || diemTBHS >= 5 && diemToan.SoDiem >= 5 && diemTH.SoDiem >= 3.5 && diemCN.SoDiem >= 3.5 && diemTD.SoDiem >= 3.5 && diemQP.SoDiem >= 3.5 && diemCD.SoDiem >= 3.5 && diemNN.SoDiem >= 3.5 && diemDia.SoDiem >= 3.5 && diemSu.SoDiem >= 3.5 && diemHoa.SoDiem >= 3.5 && diemNV.SoDiem >= 3.5 && diemSinh.SoDiem >= 3.5 && diemVatLy.SoDiem >= 3.5) { hocLuc = "Trung bình"; } else if (diemTBHS >= 3.5 && diemNV.SoDiem >= 2 && diemTH.SoDiem >= 2 && diemCN.SoDiem >= 2 && diemTD.SoDiem >= 2 && diemQP.SoDiem >= 2 && diemCD.SoDiem >= 2 && diemNN.SoDiem >= 2 && diemDia.SoDiem >= 2 && diemSu.SoDiem >= 2 && diemHoa.SoDiem >= 2 && diemToan.SoDiem >= 2 && diemSinh.SoDiem >= 2 && diemVatLy.SoDiem >= 2 || diemTBHS >= 3.5 && diemToan.SoDiem >= 2 && diemTH.SoDiem >= 2 && diemCN.SoDiem >= 2 && diemTD.SoDiem >= 2 && diemQP.SoDiem >= 2 && diemCD.SoDiem >= 2 && diemNN.SoDiem >= 2 && diemDia.SoDiem >= 2 && diemSu.SoDiem >= 2 && diemHoa.SoDiem >= 2 && diemNV.SoDiem >= 2 && diemSinh.SoDiem >= 2 && diemVatLy.SoDiem >= 2) { hocLuc = "Yếu"; } else { hocLuc = "Kém"; } //Cập nhật được học lực hocSinh.XLHocLuc = hocLuc; } //Giờ chúng ta thêm vào CSDL //Thêm học sinh foreach (var hocSinh in hocSinhs) { //Kiểm tra xem mã của học sinh đó có sẵn trong CSDL chưa hoặc nằm trong lịch sử xóa var hocSinhTrongCSDL = from hocSinhNao in db.THocSinhs where hocSinh.MaSoHS == hocSinhNao.MaSoHS select hocSinhNao; List <HocSinh> coKhong = hocSinhTrongCSDL.ToList(); var hocSinhTrongLichSuXoa = from hocSinhNao in db.TLuuTruHSXoas where hocSinh.MaSoHS == hocSinhNao.MaSoHSXoa select hocSinhNao; List <LuuTruHSXoa> coXoaKhong = hocSinhTrongLichSuXoa.ToList(); if (coKhong.Count == 0 && coXoaKhong.Count == 0) { db.THocSinhs.Add(hocSinh); //Tìm các điểm của HS này List <Diem> listDiemCuaHocSinh = new List <Diem>(); foreach (var diem in diems) { if (diem.MaHSCuaDiemA == hocSinh.MaSoHS) { listDiemCuaHocSinh.Add(diem); } } foreach (var diemCuaHSNay in listDiemCuaHocSinh) { db.TDiems.Add(diemCuaHSNay); } //Tìm các loại điểm của học sinh này List <LoaiDiemCuaTungMon> listLoaiDiemTungMon = new List <LoaiDiemCuaTungMon>(); foreach (var loaiDiem in loaiDiemCuaTungMons) { if (loaiDiem.MaDiemCuaLoaiDiem.Substring(3).ToUpper() == hocSinh.MaSoHS.ToUpper()) { listLoaiDiemTungMon.Add(loaiDiem); } } foreach (var loaiDiemHSNay in listLoaiDiemTungMon) { db.TLoaiDiemCuaTungMons.Add(loaiDiemHSNay); } db.SaveChanges(); } else { if (MessageBox.Show("Học sinh" + " có mã số là: " + hocSinh.MaSoHS + " mà bạn định thêm vào đã có trong CSDL \nHoặc đã bị xóa \nNếu muốn khôi phục vui lòng liên hệ Admin \nNhấn OK để tiếp tục quá trình thêm học sinh. \nCancel để ngừng quá trình thêm học sinh.", "Thông báo!!!", MessageBoxButton.OKCancel, MessageBoxImage.Warning) == MessageBoxResult.OK) { continue; } else { break; } } } MessageBox.Show("Hoàn thành!!!", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Có lỗi xảy ra!!!", MessageBoxButton.OK, MessageBoxImage.Error); } finally { app.Quit(); wb = null; } } ////Tìm môn giáo viên này dạy //var giaoViens = from ai in db.TGiaoViens // where ai.MaGV == maGVTrongNay // select ai; //List<GiaoVien> kiemMonGVNay = giaoViens.ToList(); ////Tạo liên kết GV dạy HS //GiaoVienDayHocSinh lienKetMoi = new GiaoVienDayHocSinh(maGVTrongNay, lopCuaHSTrongNay, kiemMonGVNay[0].MonDay); //db.TGiaoVienDayHocSinhs.Add(lienKetMoi); //db.SaveChanges(); }
private void btKhoiPhuc_Click(object sender, RoutedEventArgs e) { LichSuChinhSua a = (LichSuChinhSua)dtLichSuChinhSua.SelectedItem; if (a != null) { try { MyEntity db = new MyEntity(); //Tìm học sinh này trong CSDL Backup var hocSinhs = from ai in db.TLuuTruHSXoas where ai.MaSoHSXoa == a.MaChinhSua.Substring(3, 10) select ai; List <LuuTruHSXoa> dsHocSinh = hocSinhs.ToList(); LuuTruHSXoa hocSinhTimDuoc = dsHocSinh[0]; //Tìm điểm học sinh này trong CSDL Backup var diemHocSinhs = from diemNao in db.TLuuTruDiemHSXoas where diemNao.MaHSCuaDiemXoa == hocSinhTimDuoc.MaSoHSXoa select diemNao; List <LuuTruDiemHSXoa> dsDiemHocSinh = diemHocSinhs.ToList(); //Tìm loại điểm học sinh này trong CSDL Backup var loaiDiemHocSinhs = from diemNao in db.TLuuTruLoaiDiemHSXoas where diemNao.MaDiemCuaLoaiDiemXoa.Substring(3) == hocSinhTimDuoc.MaSoHSXoa select diemNao; List <LuuTruLoaiDiemHSXoa> dsLoaiDiemHocSinh = loaiDiemHocSinhs.ToList(); //Khởi tạo các thông tin //Học sinh HocSinh themLaiHocSinh = new HocSinh(hocSinhTimDuoc.MaSoHSXoa, hocSinhTimDuoc.HoTenXoa, hocSinhTimDuoc.NgaySinhXoa, hocSinhTimDuoc.DiaChiXoa, hocSinhTimDuoc.XLHocLucXoa, hocSinhTimDuoc.XLHanhKiemXoa, hocSinhTimDuoc.QueQuanXoa, hocSinhTimDuoc.LopCuaHSXoa, hocSinhTimDuoc.DiemTBCuaHSXoa); //Điểm học sinh đó List <Diem> themLaiDiem = new List <Diem>(); foreach (var diem in dsDiemHocSinh) { Diem diemDeThem = new Diem(diem.MaDiemXoa, diem.MaHSCuaDiemXoa, diem.SoDiemXoa); themLaiDiem.Add(diemDeThem); } //Loại điểm học sinh đó List <LoaiDiemCuaTungMon> themLaiLoaiDiem = new List <LoaiDiemCuaTungMon>(); foreach (var loaiDiem in dsLoaiDiemHocSinh) { LoaiDiemCuaTungMon loaiDiemDeThem = new LoaiDiemCuaTungMon(loaiDiem.MaLoaiDiemXoa, loaiDiem.SoDiemXoa, loaiDiem.MaDiemCuaLoaiDiemXoa); themLaiLoaiDiem.Add(loaiDiemDeThem); } //Xóa trong CSDL Backup db.TLuuTruHSXoas.Attach(hocSinhTimDuoc); db.TLuuTruHSXoas.Remove(hocSinhTimDuoc); foreach (var diem in dsDiemHocSinh) { db.TLuuTruDiemHSXoas.Attach(diem); db.TLuuTruDiemHSXoas.Remove(diem); } foreach (var loaiDiem in dsLoaiDiemHocSinh) { db.TLuuTruLoaiDiemHSXoas.Attach(loaiDiem); db.TLuuTruLoaiDiemHSXoas.Remove(loaiDiem); } //Thêm lại vào CSDL chính db.THocSinhs.Add(themLaiHocSinh); foreach (var diem in themLaiDiem) { db.TDiems.Add(diem); } foreach (var loaiDiem in themLaiLoaiDiem) { db.TLoaiDiemCuaTungMons.Add(loaiDiem); } db.SaveChanges(); var chinhSua = from lichSu in db.TLichSuChinhSuas where lichSu.MaChinhSua.Substring(0, 3) != "Sua" select lichSu; List <LichSuChinhSua> dsChinhSua = chinhSua.ToList(); dtLichSuChinhSua.ItemsSource = dsChinhSua; dtLuuDiemHocSinhXoa.ItemsSource = null; dtLuuHocSinhXoa.ItemsSource = null; dtLuuLoaiDiemHocSinhXoa.ItemsSource = null; } catch (Exception) { MessageBox.Show("Học sinh " + a.MaChinhSua.Substring(3, 10) + " đã được khôi phục về CSDL chính", "Thông báo!!!", MessageBoxButton.OK, MessageBoxImage.Information); } } else { MessageBox.Show("Cần chọn học sinh để khôi phục!", "Thông báo!!!", MessageBoxButton.OK, MessageBoxImage.Information); } }