/// <summary> /// hàm này tiến hành cập nhật lại CSDL rất lớn liên quang 5000 dòng /// /// </summary> public void ChuyenDoi() { DatabaseHelper help = new DatabaseHelper(); help.ConnectDatabase(); // insert using (var dbcxtransaction = help.ent.Database.BeginTransaction()) { try { for (int i = 0; i < tb.Rows.Count - 1; i++) { string Ma_phieu_nhap = tb.Rows[i]["column1"].ToString(); DateTime Ngay_lap = DateTime.Parse(tb.Rows[i]["column2"].ToString()); string Kho_nhan = tb.Rows[i]["column3"].ToString(); string Ly_do = tb.Rows[i]["column4"].ToString(); string Ma_vat_tu = tb.Rows[i]["column5"].ToString(); string Ten_vat_tu = tb.Rows[i]["column6"].ToString(); string Chat_luong = tb.Rows[i]["column7"].ToString(); string DVT = tb.Rows[i]["column8"].ToString(); string So_luong_thuc_lanh = tb.Rows[i]["column9"].ToString(); string Don_gia = tb.Rows[i]["column10"].ToString(); string Thanh_tien = tb.Rows[i]["column11"].ToString(); clsPhieuNhapKho pnk = new clsPhieuNhapKho(); if (pnk.CheckTonTaiSoDK(Ma_phieu_nhap, help) == false) { pnk.Ma_phieu_nhap = Ma_phieu_nhap; pnk.isGoiDau = rdoPhieuGoiDau.Checked; pnk.isCanTru = false; pnk.Ngay_lap = Ngay_lap; pnk.Kho_nhan = Kho_nhan; pnk.Ly_do = Ly_do; clsLoaiPhieuNhap LPN = new clsLoaiPhieuNhap(); LPN.Ma_LPN = Loai_PN; pnk.ID_Loai_Phieu_Nhap = LPN.GetFirst(help); pnk.ID_khoNhan = idkho; if ( pnk.Insert(help) == 0) { dbcxtransaction.Rollback(); MessageBox.Show("insert thất bại tại dòng !" + i); return; } } clsChi_Tiet_Phieu_Nhap_Vat_Tu ctpn = new clsChi_Tiet_Phieu_Nhap_Vat_Tu(); ctpn.Ma_vat_tu = Ma_vat_tu; ctpn.Ma_phieu_nhap = Ma_phieu_nhap; ctpn.ID_Chat_luong = Chat_luong.Contains("mới") ? 1 : 2; //kiểm tra xem vật tư đã có trong csdl chưa nếu chưa thêm vào clsDM_DonViTinh DMDVT = new clsDM_DonViTinh(); if (ctpn.CheckTonTaiSoDK(help) == false) { DMDVT.Ten_don_vi_tinh = DVT; if (DMDVT.hasDuplicateRow(help) == false) { //nếu chưa có thì insert dòng mới DMDVT.Insert(help); } //tiến hành insert 5000 dòng dữ liệu từ phiếu nhập } ctpn.ID_Don_vi_tinh = DMDVT.getMATuTen(DVT, help); //kiểm tra mã vật tư đã tồn tại chưa trong CSDL clsDMVatTu vt = new clsDMVatTu(); vt.Ma_vat_tu = Ma_vat_tu; vt.Ten_vat_tu = Ten_vat_tu; vt.ID_Don_vi_tinh = ctpn.ID_Don_vi_tinh; if (vt.KiemTraTrungMa(help) == false) { vt.Insert(help); } ctpn.So_luong_thuc_lanh = decimal.Parse(So_luong_thuc_lanh); ctpn.Insert(help); backgroundWorker1.ReportProgress(i); } dbcxtransaction.Commit(); backgroundWorker1.ReportProgress(0); MessageBox.Show("Thêm thành công!"); } catch (Exception ex) { dbcxtransaction.Rollback(); // Get stack trace for the exception with source file information MessageBox.Show(Utilities.clsThamSoUtilities.COException(ex)); return; } } }