Exemplo n.º 1
0
        public ActionResult StationImport(HttpPostedFileBase filebase)
        {
            HttpPostedFileBase file = Request.Files["files"];
            string             filename;
            string             FileName;
            string             savePath;

            if (file == null || file.ContentLength <= 0)
            {
                ViewBag.error = "文件不能为空";
                return(View());
            }
            else
            {
                filename = Path.GetFileName(file.FileName);
                int    filesize   = file.ContentLength;                                   //获取上传文件的大小单位为字节byte
                string fileEx     = System.IO.Path.GetExtension(filename);                //获取上传文件的扩展名
                string NoFileName = System.IO.Path.GetFileNameWithoutExtension(filename); //获取无扩展名的文件名
                int    Maxsize    = 4000 * 1024;                                          //定义上传文件的最大空间大小为4M
                string FileType   = ".xls,.xlsx";                                         //定义上传文件的类型字符串

                FileName = NoFileName + DateTime.Now.ToString("yyyyMMddhhmmss") + fileEx;
                if (!FileType.Contains(fileEx))
                {
                    ViewBag.error = "文件类型不对,只能导入xls和xlsx格式的文件";
                    return(View());
                }
                if (filesize >= Maxsize)
                {
                    ViewBag.error = "上传文件超过4M,不能上传";
                    return(View());
                }
                string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/excel/";
                savePath = Path.Combine(path, FileName);
                file.SaveAs(savePath);
            }

            //string result = string.Empty;
            string strConn;

            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";" + "Extended Properties=Excel 8.0";
            OleDbConnection conn = new OleDbConnection(strConn);

            conn.Open();
            OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [党员信息$]", strConn);
            DataSet          myDataSet = new DataSet();

            try
            {
                myCommand.Fill(myDataSet, "ExcelInfo");
            }
            catch (Exception ex)
            {
                ViewBag.error = ex.Message;
                return(View());
            }
            DataTable table = myDataSet.Tables["ExcelInfo"].DefaultView.ToTable();

            id = getId();
            int count = 1;


            for (int i = 0; i < table.Rows.Count; i++)
            {
                UserInfo  u    = GetUserInfo(table.Rows[i]);
                UserLogin User = SetUserLogin(table.Rows[i]);
                //try
                //{
                if (User.mobileid == "")
                {
                    Error er = new Error();
                    er.errorData   = DataCommon.getJsonByObject(User);
                    er.errorReason = "电话号码为空不能注册!要补齐电话号码!(" + filename + ")";
                    er.errorTable  = "用户登录表";
                    er.errorTime   = DateTime.Now;
                    db.Errors.Add(er);
                    db.SaveChanges();
                    continue;
                }


                if (DataCommon.CheckIpone(User.mobileid))
                {
                    UserLogin uL = db.UserLogin.Where(a => a.mobileid == User.mobileid).FirstOrDefault();
                    UserInfo  uI = db.UserInfo.Where(a => a.userid == uL.id).FirstOrDefault();
                    if (uI == null)
                    {
                    }
                    else
                    {
                        uI.address         = u.address;
                        uI.areaid          = u.areaid;
                        uI.company         = u.company;
                        uI.duty            = u.duty;
                        uI.imgheader       = u.imgheader;
                        uI.insertTime      = u.insertTime;
                        uI.name            = u.name;
                        uI.nationalityGJ   = u.nationalityGJ;
                        uI.nationMZ        = u.nationMZ;
                        uI.partybrach      = u.partybrach;
                        uI.partyinsertTime = u.partyinsertTime;
                        uI.partymemberid   = u.partymemberid;
                        uI.qqnumber        = u.qqnumber;
                        uI.status          = u.status;
                        uI.town            = u.town;
                        uI.township        = u.township;
                        uI.wxnumber        = u.wxnumber;
                        uI.wxopenId        = u.wxopenId;
                        uI.zfbnumber       = u.zfbnumber;
                        uI.educationXL     = u.educationXL;
                        uI.sexy            = u.sexy;
                        uI.birthday        = u.birthday;
                        db.Set <UserInfo>().Attach(uI);
                        db.Entry <UserInfo>(uI).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                    Error er = new Error();
                    er.errorData   = DataCommon.getJsonByObject(User);
                    er.errorReason = "手机号重复注册!(" + filename + ")";
                    er.errorTable  = "用户登录表";
                    er.errorTime   = DateTime.Now;
                    db.Errors.Add(er);
                    db.SaveChanges();
                }
                else
                {
                    db.UserLogin.Add(User);
                    db.UserInfo.Add(u);
                    db.SaveChanges();
                    id++;
                    count++;
                }


                ////}
                ////catch
                ////{
                //    Error er = new Error();
                //    er.errorData = DataCommon.getJsonByObject(User);
                //    er.errorReason = "未知错误!";
                //    er.errorTable = "用户信息表";
                //    er.errorTime = DateTime.Now;
                //    db.Errors.Add(er);
                //    db.SaveChanges();

                //}
            }

            if (count == table.Rows.Count)
            {
                ViewBag.error = "存入成功!";
            }
            else if (count == 1)
            {
                ViewBag.error = "存入失败导入零条数据!";
            }
            else
            {
                ViewBag.error = "部分导入不成功!可能是电话号码重复注册!详情看错误日志!";
            }
            System.Threading.Thread.Sleep(2000);
            return(View());
        }