Excel에서 aps.net MVC 유효성 검사 행이 필요합니다.

asp.net c# sqlbulkcopy sql-server

문제

SQL 데이터베이스에 대량 가져 오기 엑셀이 있으며 각 행의 유효성을 검사해야하며 Microsoft.Office.Interop.Excel Services를 사용하고 있습니다. 아래 코드 사용 :

public ActionResult ImportDataAgens()
{
  return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ImportDataAgens(HttpPostedFileBase excelfileRekn)
{
  if (excelfileRekn == null || excelfileRekn.ContentLength == 0)
  {
    ViewBag.Error = "Please Select File <br>";
    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);
      try
      {
        excelfileRekn.SaveAs(path);
        ViewData["Feedback"] = "Upload Complete";
      }
      catch (Exception ex)
      {
        ViewData["Feedback"] = ex.Message;
      }

      //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();
        rk.NamaAgen = ((Excel.Range)range.Cells[row, 2]).Text;
        rk.NomorIdentifikasiAgen = ((Excel.Range)range.Cells[row, 3]).Text;
        rk.NomordanTanggalPerjanjian = ((Excel.Range)range.Cells[row, 4]).Text;
        rk.CreateBy = valueA;
        rk.UpdateDate = DateTime.Today;
        listTempRekn.Add(rk);
        db.DMInformasiDataAgen.Add(rk);
        db.SaveChanges();
        ViewBag.Result = "Successfully Imported";
      }
      return RedirectToAction("Index", "DataAgens");
    }
    else
    {
      ViewBag.Error = "This file format is not supported";
      return View("ImportDataAgens");
    }
  }
}

모든 행의 데이터를 어떻게 검증 할 수 있습니까?

인기 답변

각 유형에 대해 유효성 검증 기능을 작성한 다음 instert가 사용자에게 정보를 제공하고 나열하지 않도록 모든 실패 행을 수집 할 수 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.