コード例 #1
0
        //更新
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            Entity.StudentEntity   model      = new Entity.StudentEntity();
            Daiv_OA.BLL.ContactBLL contactBll = new Daiv_OA.BLL.ContactBLL();
            Daiv_OA.BLL.StudentBLL studentBll = new Daiv_OA.BLL.StudentBLL();
            Daiv_OA.BLL.GradeBLL   gradeBll   = new BLL.GradeBLL();
            string uuid = Guid.NewGuid().ToString("N");
            //修改联系电话
            //保存上传文件
            string      fName  = UploadFile(uuid);
            string      path   = Path.Combine(Server.MapPath("/"), "upload/" + DateTime.Now.ToString("yyyy/MM").Replace("/", "").Substring(0, 6));
            ImportExcel import = new ImportExcel();

            import.LoadFile(path + "/" + fName);
            DataSet   ds        = import.GetAllTables(true);
            DataTable dataTable = ds.Tables[0];
            //获取班级数据
            List <Entity.GradeEntity> glist = gradeBll.GetModelList("");

            if (glist == null || glist.Count <= 0)
            {
                logHelper.logInfo("未添加任何班级数据!");
                FinalMessage("导入失败,请先添加班级数据!", "", 0);
            }
            #region 验证表格
            //验证表格
            if (dataTable.Rows.Count <= 0)
            {
                logHelper.logInfo(fName + ",未填写任何学生数据!");
                FinalMessage(fName + ",未填写任何学生数据!", "", 0);
                return;
            }
            for (int i = 0; i < colmun.Length; i++)
            {
                if (colmun[i] != dataTable.Columns[i].ColumnName)
                {
                    FinalMessage("导入的excel表与模板excel表不符合!", "", 0);
                    message.Visible = true;
                    return;
                }
            }
            //验证班级数据
            int    tbCount   = dataTable.Rows.Count;
            string tempCName = string.Empty;
            if (Request["schClassgcid"] == null || string.IsNullOrEmpty(Request["schClassgcid"].ToString()))
            {
                FinalMessage("没有选择班级,请重新选择!", "", 0);
                return;
            }
            try
            {
                SchClassId = int.Parse(Request["schClassgcid"].ToString());
            }
            catch (Exception ex)
            {
                FinalMessage("班级转换失败,请重新选择!", "", 0);
                return;
            }
            //for (int j = 0; j < tbCount; j++)
            //{
            //    tempCName = Convert.ToString(dataTable.Rows[j][colmun[2]]);
            //    if (glist.Where(g=>g.Gname == tempCName).FirstOrDefault() == null)
            //    {
            //        logHelper.logInfo(tempCName + " 未匹配到此班级名称!");
            //        FinalMessage(tempCName + " 未匹配到此班级名称!", "", 0);
            //        message.Visible = true;
            //        return;
            //    }
            //}
            //验证时间的有效性
            for (int i = 0; i < tbCount; i++)
            {
                try
                {
                    Convert.ToDateTime(dataTable.Rows[i][colmun[3]]);
                }
                catch (Exception)
                {
                    logHelper.logInfo(string.Format("'{0}' 出生年月日无效!", tempCName));
                    FinalMessage(Convert.ToString(dataTable.Rows[i][colmun[1]]) + "学生出生时间无效!", "", 0);
                    message.Visible = true;
                    return;
                }

                //验证学号
                //验证学生序号是否存在
                string snumbertemp           = Convert.ToString(dataTable.Rows[i][colmun[0]]);
                bool   exixt                 = new Daiv_OA.BLL.StudentBLL().Exists(snumbertemp);
                Daiv_OA.BLL.ContactBLL ctBll = new Daiv_OA.BLL.ContactBLL();
                if (exixt)
                {
                    FinalMessage(snumbertemp + "相同的学生学号已经存在", "", 0);
                    message.Visible = true;
                    return;
                }
            }


            #endregion

            //遍历表格
            Entity.StudentEntity studentEntity = null;
            Entity.UserEntity    parent        = null;
            Entity.ContactEntity contactEnitty = null;
            for (int i = 0; i < tbCount; i++)
            {
                studentEntity = new Entity.StudentEntity();
                parent        = new Entity.UserEntity();
                contactEnitty = new Entity.ContactEntity();
                //保存数据
                try
                {
                    //学生实体相关信息保存
                    studentEntity.Gname     = glist.Where(g => g.Gid == SchClassId).FirstOrDefault().Gname; //班级名称 列索引:2
                    studentEntity.Gid       = glist.Where(g => g.Gid == SchClassId).FirstOrDefault().Gid;
                    studentEntity.Snumber   = Convert.ToString(dataTable.Rows[i][colmun[0]]);               //学生学号 列索引:0
                    studentEntity.Sname     = Convert.ToString(dataTable.Rows[i][colmun[1]]);               //学生名称 列索引:1
                    studentEntity.Sbirthday = Convert.ToDateTime(dataTable.Rows[i][colmun[3]]);             //出生年月日 列索引:3
                                                                                                            //家长实体相关信息保存
                    parent.Uname = studentEntity.Snumber;
                    string pwd = studentEntity.Sbirthday.ToString("yy") + studentEntity.Sbirthday.ToString("MM") + studentEntity.Sbirthday.ToString("dd");
                    parent.Upwd     = Daiv_OA.Utils.MD5.Lower32(pwd);
                    parent.Pid      = 4;
                    parent.Did      = 0;
                    parent.Position = "家长";
                    parent.Mphone   = "";
                    Entity.PowerEntity powerEntity = new BLL.PowerBLL().GetEntity(parent.Pid);
                    parent.Setting = powerEntity.Setting;
                    //联系电话实体相关信息保存
                    contactEnitty.Cphone  = Convert.ToString(dataTable.Rows[i][colmun[4]]); //家长联系电话1 列索引:4
                    contactEnitty.Cphone2 = Convert.ToString(dataTable.Rows[i][colmun[5]]); //家长联系电话2 列索引:5
                    contactEnitty.Cphone3 = Convert.ToString(dataTable.Rows[i][colmun[6]]); //家长联系电话3 列索引:6
                    contactEnitty.Cphone4 = Convert.ToString(dataTable.Rows[i][colmun[7]]); //家长联系电话4 列索引:7

                    List <Entity.ContactEntity> contactList = new List <Entity.ContactEntity>();
                    contactList.Add(new Entity.ContactEntity()
                    {
                        CPhoneName = "家长1", Cphone = contactEnitty.Cphone
                    });
                    contactList.Add(new Entity.ContactEntity()
                    {
                        CPhoneName = "家长2", Cphone = contactEnitty.Cphone2
                    });
                    contactList.Add(new Entity.ContactEntity()
                    {
                        CPhoneName = "家长3", Cphone = contactEnitty.Cphone3
                    });
                    contactList.Add(new Entity.ContactEntity()
                    {
                        CPhoneName = "家长4", Cphone = contactEnitty.Cphone4
                    });

                    //当前操作人对象
                    Entity.UserEntity opera = new Daiv_OA.BLL.UserBLL().GetEntity(UserId);
                    new Daiv_OA.BLL.StudentBLL().Add(studentEntity, parent, contactList, opera);
                }
                catch (Exception ex)
                {
                    FinalMessage("操作失败!" + ex.Message, "Student_List.aspx", 1);
                    return;
                }

                // FinalMessage("操作成功", "Student_List.aspx", 0);
            }
            logHelper.logInfo("导入成功!操作人:" + UserId);
            FinalMessage("导入成功", "Student_List.aspx", 0);
        }