<%@ WebHandler Language="C#" Class="testform_importBarCode" %> using System; using System.Web; using System.Web.SessionState; using System.Data; using DK.XuWei.WebMes; using Curtain.DataAccess; using Curtain.Log; //EXCEL模板,要求 //... public class testform_importBarCode : IHttpHandler, IReadOnlySessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //上传文件 string filePath = "/mes/upload/"+DateTime.Now.ToString("yyyy-MM-dd"); System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath)); string fileName = filePath + "/实验单" + DateTime.Now.ToString("yyyy-MM-dd"); fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName); string diskFileName = context.Server.MapPath(fileName); if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName); context.Request.Files[0].SaveAs(diskFileName); //读excel DataTable dt = Import.ExcelToDataTable(diskFileName); //Logger.Debug(dt.Rows.Count.ToString()); //写入数据 using (IDataAccess conn = DataAccess.Create()) { int errorLineNo = 0; conn.BeginTransaction(); try { #region 删除实验单所有产品 object a = context.Request["testformguidMaster"]; int result0 = conn.ExecuteNonQuery(@" DELETE TP_PM_TESTFORM2_GOODS WHERE TESTFORMGUID = @TESTFORMGUID@ ", new CDAParameter("TESTFORMGUID", context.Request["testformguidMaster"]) ); #endregion //判断字段包含 string barCodeStr = ""; for (int i=0;i -1) { continue; } barCodeStr += dt.Rows[i]["产品条码"] + ","; /*#region 校验重复 object isExists = conn.ExecuteScalar( @"SELECT DISTINCT 1 FROM TP_PM_TESTFORM2_GOODS WHERE TESTFORMGUID = @TESTFORMGUID@ AND BARCODE = REPLACE(@BARCODE@,' ','') AND VALUEFLAG = 1", new CDAParameter("BARCODE", dt.Rows[i]["产品条码"]), new CDAParameter("TESTFORMGUID",context.Request["testformguidMaster"]) ); if (isExists != null) { continue; } #endregion*/ //记录行号 errorLineNo = i; int result = conn.ExecuteNonQuery(@" INSERT INTO TP_PM_TESTFORM2_GOODS ( TESTFORMGUID, BARCODE, ACCOUNTID,CREATEUSERID,UPDATEUSERID ) VALUES ( @TESTFORMGUID@, REPLACE(@BARCODE@,' ',''), @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@ ) ", new CDAParameter("TESTFORMGUID",context.Request["testformguidMaster"]), new CDAParameter("BARCODE",dt.Rows[i]["产品条码"].ToString()), new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]), new CDAParameter("CREATEUSERID",HttpContext.Current.Session["userId"]), new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"]) ); } conn.Commit(); context.Response.Write(new JsonResult(JsonStatus.success).ToJson()); } catch(Exception e) { Logger.Error(e); conn.Rollback(); context.Response.Write(new JsonResult(JsonStatus.otherError) { message = "行号:" + errorLineNo + " 数据错误,请检查!" }.ToJson()); } } } public bool IsReusable { get { return false; } } }