如何更新数据库中已经存在的值,如果没有的话插入新的logging?

如果行值已经在数据库中,我创build了一个validation来检查excel文件中的值。 我想创build行动,如果该值已经存在,那么我的logging更新,如果不存在databese然后插入为新logging。

这里完整的代码。

[ValidateAntiForgeryToken] public ActionResult ImportDataAgens(HttpPostedFileBase excelfileRekn) { if (excelfileRekn == null || excelfileRekn.ContentLength == 0) { ViewBag.Error = "Please Select File..."; return View("ImportDataAgens"); } else { if (excelfileRekn.FileName.EndsWith("xls") || excelfileRekn.FileName.EndsWith("xlsx")) { string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff"); string filename = Path.GetFileName(excelfileRekn.FileName); string DocFileNames = newFileName + "-" + filename; string path = System.IO.Path.Combine(Server.MapPath("~/UploadFile/DataAgen/"), DocFileNames); if (System.IO.File.Exists(path)) System.IO.File.Delete(path); excelfileRekn.SaveAs(path); //read data from file excel Excel.Application application = new Excel.Application(); Excel.Workbook workbook = application.Workbooks.Open(path); Excel.Worksheet worksheet = workbook.ActiveSheet; Excel.Range range = worksheet.UsedRange; List<DMInformasiDataAgen> listTempRekn = new List<DMInformasiDataAgen>(); for (int row = 3; row <= range.Rows.Count; row++) { DMInformasiDataAgen rk = new DMInformasiDataAgen(); /* var NewUserIDAgent = ((Excel.Range)range.Cells[row, 1]).Text; var NewNamaAgen = ((Excel.Range)range.Cells[row, 2]).Text; //rk.NamaAgen = NewNamaAgen;*/ rk.SandiBank = ((Excel.Range)range.Cells[row, 1]).Text; rk.UserIDAgen = ((Excel.Range)range.Cells[row, 2]).Text; rk.NamaAgen = ((Excel.Range)range.Cells[row, 3]).Text; var NewNomorIdentifikasiAgen = ((Excel.Range)range.Cells[row, 4]).Text; rk.NomorIdentifikasiAgen = NewNomorIdentifikasiAgen; if (db.DMInformasiDataAgens.Any(ac => ac.NomorIdentifikasiAgen.Equals((rk.NomorIdentifikasiAgen)))) { int RowNo = row; var hitung = listTempRekn.Count + 4; ModelState.AddModelError("", "Nomor Identifikasi Sudah ada sebelumnya ! Pada baris ke " + hitung + " Pada EXCEL File !"); return View("ImportDataAgens"); } rk.NomordanTanggalPerjanjian = ((Excel.Range)range.Cells[row, 5]).Text; rk.TglPelaksanaan = ((Excel.Range)range.Cells[row, 6]).Value; rk.JenisAgen = ((Excel.Range)range.Cells[row, 7]).Text; rk.KlasifikasiAgen = ((Excel.Range)range.Cells[row, 8]).Text; rk.JenisUsahaAgen = ((Excel.Range)range.Cells[row, 9]).Text; rk.KodePos = ((Excel.Range)range.Cells[row, 10]).Text; rk.LatitudeLongitudinal = ((Excel.Range)range.Cells[row, 11]).Text; rk.KabupatenKota = ((Excel.Range)range.Cells[row, 12]).Text; rk.ElectronicDevice = ((Excel.Range)range.Cells[row, 13]).Text; rk.JaringanKantorBank = ((Excel.Range)range.Cells[row, 14]).Text; rk.KategoriJaringanKantorBank = ((Excel.Range)range.Cells[row, 15]).Text; rk.StatusPerkembanganAgen = ((Excel.Range)range.Cells[row, 16]).Text; rk.Keterangan = ((Excel.Range)range.Cells[row, 17]).Text; if (((Excel.Range)range.Cells[row, 18]).Value == null) { int RowNo = row; var hitung = listTempRekn.Count + 4; ModelState.AddModelError("", "Tolong periksa PERIODE Pada baris ke " + hitung + " Pada EXCEL File !"); return View("ImportDataAgens"); } rk.Periode = ((Excel.Range)range.Cells[row, 18]).Value; string valueA = System.Web.HttpContext.Current.User.Identity.Name; rk.CreateBy = valueA; rk.CreateDate = DateTime.Today; if (db.DMInformasiDataAgens.Any(ac => ac.NomorIdentifikasiAgen.Equals((rk.NomorIdentifikasiAgen)))) { int RowNo = row; var hitung = listTempRekn.Count + 4; ModelState.AddModelError("", "The Number Of Agent Already Exist on " + hitung + " the Template EXCEL File !"); return View("ImportDataAgens"); } if (ModelState.IsValid) { listTempRekn.Add(rk); db.DMInformasiDataAgens.Add(rk); db.SaveChanges(); var hitung = listTempRekn.Count; //range.Rows.Count - 2; TempData["AlertMessage"] = "Import Data Selesai " + hitung + " Records Sudah Tersimpan..."; } } return RedirectToAction("Index", "DataAgens"); } else { ViewBag.Error = "File Type is incorrect <br>"; return View("ImportDataAgens"); } } } 

这里的代码,当我检查已经存在的值:

 **if (db.DMInformasiDataAgens.Any(ac => ac.NomorIdentifikasiAgen.Equals((rk.NomorIdentifikasiAgen)))) { int RowNo = row; var hitung = listTempRekn.Count + 4; ModelState.AddModelError("", " The Number Of Agent Already Exist on " + hitung + " the Template EXCEL File !"); return View("ImportDataAgens"); }** 

如果数值已经存在(数字代理)如何创build操作,然后我的logging更新,如果没有,然后插入新的logging?

 var chkItem = x.firstOrDefault(your condition); if(chkItem != null) { //update your record. } else{ //insert into database }