public frmHocSinh(frmLogin frmlogin, HocSinh hs) { this.frmlogin = frmlogin; this.hs = hs; InitializeComponent(); // thanhbinh timer1.Start(); timer1.Interval = 1000; int counter = 3600; TimeSpan t = TimeSpan.FromSeconds(counter); timer1.Tick += (s, e) => { if (counter == 0) { timer1.Stop(); } else { counter--; } t = TimeSpan.FromSeconds(counter); lblThoiGian.Text = string.Format("{0:D2}:{1:D2}", t.Minutes, t.Seconds); }; // koichen this.FormClosing += (s, e) => { frmlogin.Show(); }; loadCBCauHoi(); loadDGVDapAn(); set(); dgchBtnThemCH.Click += (s, e) => { using (var qlttn = new QLTTNDataContext()) { if (qlttn.CauHois.Where(ch => ch.NoiDung.ToLower() == dgchTxtCH.Text.ToLower()).Count() != 0) { MessageBox.Show("Câu hỏi này đã có trong danh sách. Xin mời tạo câu hỏi mới", "Trùng record", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // tìm thử xem có câu hỏi nào chưa có đáp án hay không, nếu như có thì ngừng việc // thêm câu hỏi mới mà yêu cầu người dùng thêm đáp án cho câu hỏi đó var cauhoi = qlttn.CauHois.Where(ch => ch.DapAns == null || ch.DapAns.Count < 2).FirstOrDefault(); if (cauhoi != null) { MessageBox.Show($"Xin mời nhập tối thiểu 2 đáp án cho câu hỏi sau trước khi thêm câu hỏi mới:{Environment.NewLine} <{cauhoi.NoiDung}>", "Câu hỏi chưa có đáp án", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } qlttn.CauHois.InsertOnSubmit(new CauHoi() { NoiDung = dgchTxtCH.Text, CapDo = qlttn.CapDos.Where(cd => cd.maCD == int.Parse(dgchCbCapDo.SelectedValue.ToString())).SingleOrDefault() }); qlttn.SubmitChanges(); } loadCBCauHoi(); cbDSCH.SelectedItem = cbDSCH.Items[cbDSCH.Items.Count - 1]; dgchTxtDA.Focus(); }; dgchBtnXoaCH.Click += (s, e) => { using (var qlttn = new QLTTNDataContext()) { if (qlttn.CauHois.Count() <= 1) { MessageBox.Show("Không thể xóa vì cần phải có ít nhất một câu hỏi trong Database", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } var cauHoiHienTai = qlttn.CauHois .Where(ch => ch.maCH == int.Parse(cbDSCH.SelectedValue.ToString())) .FirstOrDefault(); qlttn.DapAns.DeleteAllOnSubmit(cauHoiHienTai.DapAns); qlttn.CauHois.DeleteOnSubmit(cauHoiHienTai); qlttn.SubmitChanges(); } loadCBCauHoi(); }; dgchBtnSuaCH.Click += (s, e) => { using (var qlttn = new QLTTNDataContext()) { if (qlttn.CauHois.Where(ch => ch.NoiDung.ToLower() == dgchTxtCH.Text.ToLower()).Count() != 0) { MessageBox.Show("Câu hỏi này đã có trong danh sách. Xin mời tạo câu hỏi mới", "Trùng record", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var cauHoiHienTai = qlttn.CauHois .Where(ch => ch.maCH == int.Parse(cbDSCH.SelectedValue.ToString())) .FirstOrDefault(); cauHoiHienTai.NoiDung = dgchTxtCH.Text; cauHoiHienTai.CapDo = qlttn.CapDos.Where(cd => cd.maCD == int.Parse(dgchCbCapDo.SelectedValue.ToString())).FirstOrDefault(); qlttn.SubmitChanges(); } loadCBCauHoi(); cbDSCH.SelectedItem = cbDSCH.Items[cbDSCH.Items.Count - 1]; }; dgchBtnThemDA.Click += (s, e) => { using (var qlttn = new QLTTNDataContext()) { var cauHoiHienTai = qlttn.CauHois .Where(ch => ch.maCH == int.Parse(cbDSCH.SelectedValue.ToString())) .FirstOrDefault(); if (cauHoiHienTai.DapAns.Where(da => da.NoiDung.ToLower() == dgchTxtDA.Text.ToLower()).Count() != 0) { MessageBox.Show("Đáp án này đã có trong danh sách. Xin mời tạo đáp án mới", "Lỗi trùng dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } if (cauHoiHienTai.DapAns.Count >= 6) { MessageBox.Show("Mỗi câu hỏi có tối đa 6 đáp án. Xin mời xóa bớt đáp án để thêm mới", "Hướng dẫn", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } qlttn.DapAns.InsertOnSubmit(new DapAn() { NoiDung = dgchTxtDA.Text, DungSai = dgchCkbDungSai.Checked, //DungSai = bool.Parse(txtDungSai.Text), CauHoi = qlttn.CauHois.Where(ch => ch.maCH == int.Parse(cbDSCH.SelectedValue.ToString())).SingleOrDefault() }); qlttn.SubmitChanges(); } loadDGVDapAn(); dgvDSDA.Rows[dgvDSDA.Rows.GetLastRow(DataGridViewElementStates.Displayed)].Selected = true; dgchTxtDA.Focus(); }; dgchBtnXoaDA.Click += (s, e) => { using (var qlttn = new QLTTNDataContext()) { var cauHoiHienTai = qlttn.CauHois .Where(ch => ch.maCH == int.Parse(cbDSCH.SelectedValue.ToString())) .FirstOrDefault(); if (cauHoiHienTai.DapAns.Count <= 2) { MessageBox.Show("Mỗi câu hỏi cần phải có tối thiểu 2 đáp án", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dgvDSDA.SelectedRows.Count == 0) { MessageBox.Show("Hãy chọn đáp án cần xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } qlttn.DapAns.DeleteOnSubmit(cauHoiHienTai.DapAns.Where(da => da.maDA == int.Parse(dgvDSDA.SelectedRows[0].Cells["maDA"].Value.ToString())).FirstOrDefault()); qlttn.SubmitChanges(); } loadDGVDapAn(); }; dgchBtnSuaDA.Click += (s, e) => { using (var qlttn = new QLTTNDataContext()) { var cauHoiHienTai = qlttn.CauHois .Where(ch => ch.maCH == int.Parse(cbDSCH.SelectedValue.ToString())) .FirstOrDefault(); if (cauHoiHienTai.DapAns.Where(da => da.NoiDung.ToLower() == dgchTxtDA.Text.ToLower()).Count() != 0) { MessageBox.Show("Đáp án này đã có trong danh sách. Xin mời tạo đáp án mới", "Lỗi trùng dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } var dapAnHienTai = cauHoiHienTai.DapAns.Where(da => da.maDA == int.Parse(dgvDSDA.SelectedRows[0].Cells["maDA"].Value.ToString())).FirstOrDefault(); dapAnHienTai.NoiDung = dgchTxtDA.Text; dapAnHienTai.DungSai = dgchCkbDungSai.Checked; //dapAnHienTai.DungSai = bool.Parse(txtDungSai.Text); qlttn.SubmitChanges(); } loadDGVDapAn(); dgchTxtDA.Focus(); }; dgchbtnImport.Click += (s, e) => { using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xlsx|Excel Workbook 97-2003|*.xls", ValidateNames = true }) { if (ofd.ShowDialog() == DialogResult.OK) { using (var stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { IExcelDataReader reader; DataSet ds; List <CauHoi> cauHoiBiTrung = new List <CauHoi>(); if (ofd.FilterIndex == 2) { reader = ExcelReaderFactory.CreateBinaryReader(stream); } else { reader = ExcelReaderFactory.CreateOpenXmlReader(stream); } ds = reader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); reader.Close(); //cb_sheet.Items.Clear(); using (var qlttn = new QLTTNDataContext()) { DataTable dtCauHoi = ds.Tables["CauHoi"]; DataTable dtDapAn = ds.Tables["DapAn"]; DataRow firstRow = dtCauHoi.Rows[0]; int lastIdent = (int)qlttn.ExecuteQuery <decimal>("select IDENT_CURRENT('dbo.CauHoi')").FirstOrDefault(); foreach (DataRow row in dtCauHoi.Rows) { CauHoi cauHoiTmp = new CauHoi() { NoiDung = row["NoiDung"].ToString(), maCD = int.Parse(row["maCD"].ToString()), }; if (qlttn.CauHois.Where(ch => ch.NoiDung.ToLower() == cauHoiTmp.NoiDung.ToLower()).Count() == 0) { qlttn.CauHois.InsertOnSubmit(cauHoiTmp); qlttn.SubmitChanges(); foreach (DataRow rowDapAn in dtDapAn.Rows) { if (rowDapAn["maCH"].ToString() == row["maCH"].ToString()) { DapAn datmp = new DapAn() { NoiDung = rowDapAn["NoiDung"].ToString(), maCH = qlttn.CauHois.Max(ch => ch.maCH), DungSai = rowDapAn["DungSai"].ToString().ToLower() == "true" ? true : false }; qlttn.DapAns.InsertOnSubmit(datmp); } } } else { cauHoiBiTrung.Add(cauHoiTmp); } } qlttn.SubmitChanges(); } loadCBCauHoi(); loadDGVDapAn(); if (cauHoiBiTrung.Count > 0) { string strCauHois = ""; for (int i = 0; i < cauHoiBiTrung.Count; i++) { string str = cauHoiBiTrung[i].NoiDung; int maxLeng = 50; if (str.Length > maxLeng) { str = str.Replace(str.Substring(maxLeng, str.Length - maxLeng), " ..."); } strCauHois += $"{Environment.NewLine} {i + 1}. {str}"; } MessageBox.Show($">>>> DANH SÁCH NHỮNG CÂU HỎI BỊ TRÙNG <<<< {strCauHois}", "Không thể import", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { MessageBox.Show("Import danh sách câu hỏi thành công", "Thông báo"); } } } } }; dgchbtnExport.Click += (s, e) => { using (var sfd = new SaveFileDialog() { CreatePrompt = false, OverwritePrompt = true, AddExtension = true, Filter = "Excel Workbook|*.xlsx|Excel Workbook 97-2003|*.xls", ValidateNames = true }) { if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataTable dtCauHoi = new DataTable(); dtCauHoi.TableName = "CauHoi"; dtCauHoi.Columns.Add("maCH", typeof(int)); dtCauHoi.Columns.Add("NoiDung", typeof(string)); dtCauHoi.Columns.Add("maCD", typeof(int)); DataTable dtDapAn = new DataTable(); dtDapAn.TableName = "DapAn"; dtDapAn.Columns.Add("maCH", typeof(int)); dtDapAn.Columns.Add("maDA", typeof(int)); dtDapAn.Columns.Add("NoiDung", typeof(string)); dtDapAn.Columns.Add("DungSai", typeof(bool)); using (var qlttn = new QLTTNDataContext()) { List <CauHoi> chs = qlttn.CauHois.ToList(); List <DapAn> das = qlttn.DapAns.ToList(); for (int i = 0; i < qlttn.CauHois.Count(); i++) { List <DapAn> dasTmp = das.Where(da => da.maCH == chs[i].maCH).ToList(); chs[i].maCH = i + 1; dtCauHoi.Rows.Add(chs[i].maCH, chs[i].NoiDung, chs[i].maCD); foreach (var da in dasTmp) { da.maCH = i + 1; dtDapAn.Rows.Add(da.maCH, da.maDA, da.NoiDung, da.DungSai); } } }; XLWorkbook wb = new XLWorkbook(); wb.Worksheets.Add(dtCauHoi, dtCauHoi.TableName); wb.Worksheets.Add(dtDapAn, dtDapAn.TableName); wb.SaveAs(sfd.InitialDirectory + sfd.FileName); } } }; }
public frmDangKy(frmLogin frmlogin) { this.frmlogin = frmlogin; InitializeComponent(); qlndDgvDSLop.Columns.Add(new DataGridViewCheckBoxColumn { Name = "Chon", TrueValue = true, FalseValue = false, IndeterminateValue = false, Width = 20 }); loadCBLoaiND(); loadCBKhoi(); loadCBLop(); loadCBChuyenMon(); LoadDgvDSLop(); cbLoaiND.SelectedIndexChanged += (s, e) => { lblChuyenMon.Visible = false; lblCTGiangDay.Visible = false; lblHoTen.Visible = false; lblKhoi.Visible = false; lblLop.Visible = false; lblNgaySinh.Visible = false; qlndCbChuyenMon.Visible = false; qlndCbKhoi.Visible = false; qlndCbLop.Visible = false; qlndDgvDSLop.Visible = false; qlndTxtHoTen.Visible = false; qlndDtpNgaySinh.Visible = false; if (cbLoaiND.SelectedValue.ToString() == "HS") { //lblChuyenMon.Visible = true; //lblCTGiangDay.Visible = true; lblHoTen.Visible = true; lblKhoi.Visible = true; lblLop.Visible = true; lblNgaySinh.Visible = true; //qlndCbChuyenMon.Visible = true; qlndCbKhoi.Visible = true; qlndCbLop.Visible = true; //qlndDgvCTGiangDay.Visible = true; qlndTxtHoTen.Visible = true; qlndDtpNgaySinh.Visible = true; } else if (cbLoaiND.SelectedValue.ToString() == "GV") { lblChuyenMon.Visible = true; lblCTGiangDay.Visible = true; lblHoTen.Visible = true; //lblKhoi.Visible = true; //lblLop.Visible = true; lblNgaySinh.Visible = true; qlndCbChuyenMon.Visible = true; //qlndCbKhoi.Visible = true; //qlndCbLop.Visible = true; qlndDgvDSLop.Visible = true; qlndTxtHoTen.Visible = true; qlndDtpNgaySinh.Visible = true; } else if (cbLoaiND.SelectedValue.ToString() == "AD") { } }; cbLoaiND.SelectedIndex = 2; btndangky.Click += btndangky_Click; }