页面Excel数据保存进数据库

将电脑里面的Excel表格放到了页面,在session中了,可以将session中的数据提取保存进数据库中去,将数据导入的时候就相等于是在进行新增的行为,需要判断是否存在重复,保存失败,保存找不到源文件等可能出现的问题。

function saveImport()
        {
            //请求保存导入的数据的url
            $.post("SaveImport", function (Msg) {
                //关闭模态框
                $("#modImportExaminee").modal("hide");
                //输出
                layer.alert(Msg, { icon: 0, title: "提示" });
                //刷新
                searchTabStudent();
            });
        }

控制器:

public ActionResult SaveImport()
        {
            string strMsg = "";
            try
            {
                int successCount = 0;//记录保存成功的数据条数
                int oldCount = 0;//记录因于数据库已有数据重复而保存失败的数据条数

                List listStudentVo = new List(); 
                if (Session["ImportExcel"] != null) 判断session中的Excel是否为空
                {  
导入数据的顺序是按照规定的模板导入的,所以如果Excel表格里面的数据顺序被改变或增加,缺失 会导致导入失败,这里方法有点生硬
                    listStudentVo = Session["ImportExcel"] as List;
                }
            foreach (studentVo student in listStudentVo)
            {
                //判断数据是否与数据库中已有数据重复
                int countStudent = (from tbStudent in myModels.PW_Student
                                    where tbStudent.StudentIDNum == student.StudentIDNum ||
                                          tbStudent.StudentNumber == student.StudentNumber
                                    select tbStudent).Count();
                if (countStudent == 0)
                {
                    //用户表
                    PW_User dbUser = new PW_User();
                    //账号
                    dbUser.UserNuber = student.StudentNumber;
                    //密码
                    dbUser.Password = Common.AESEncryptHelper.Encrypt(student.StudentNumber);
                    //认证码
                    dbUser.UniformAuthenticationCode = student.StudentNumber;
                    //保存
                    myModels.PW_User.Add(dbUser);

                    if (myModels.SaveChanges() > 0)
                    {
                        var UserId = dbUser.UserID;

                        //角色明细表
          PW_UserRoleDetail dbUserRoleDetail = new PW_UserRoleDetail();
                        //用户ID
                        dbUserRoleDetail.UserID = UserId;
                        //用户类型ID
                        dbUserRoleDetail.UserTypeID = 6;
                        //保存
                        myModels.PW_UserRoleDetail.Add(dbUserRoleDetail);
                        myModels.SaveChanges();

                        
                        PW_Student dbStudent = new PW_Student();
                      
                        dbStudent.StudentNumber = student.StudentNumber;
                        dbStudent.UserID = UserId;

                        myModels.PW_Student.Add(dbStudent);
                        if (myModels.SaveChanges()>0)
                        {
                            successCount++;
                        }
                        else
                        {
                            strMsg = "学生表保存失败!";
                        }
                    }
                    else
                    {
                        strMsg = "用户表保存失败!";
                    }
                }
                else
                {
                    oldCount++;
                }
            }
            strMsg = "导入成功,总共导入" + listStudentVo.Count() + "条数据,已经存在的数据有" + oldCount + "条,新增成功的数据有" + successCount + "条!";
        }
        catch (Exception)
        {
            strMsg = "数据异常!";
        }
        return Json(strMsg,JsonRequestBehavior.AllowGet);
    }

你可能感兴趣的:(ASP.NET)