예제 #1
0
        private void ImpFile(string xlsFile)
        {
            lblSuccess.Text = "";
            lblError.Text   = "";

            //读取Excel内容
            var _mExcelHelper = new ExcelHelper();
            var dt            = _mExcelHelper.GetDataFromExcelBreakEmptyLine(xlsFile);

            if (null == dt)
            {
                ShowMsg("读取文件数据失败!");
                return;
            }

            try
            {
                dt.Columns["ENAME"].ColumnName         = "English_Name";
                dt.Columns["Employee_type"].ColumnName = "EmployeeTypeName";
                dt.Columns.Remove("Employee");
                if (null == dt.Columns["IDCardNumber"])
                {
                    dt.Columns.Add("IDCardNumber");
                }
                if (null == dt.Columns["SrcImport"])
                {
                    dt.Columns.Add("SrcImport"); //0-GBSHR import, 1--multek import
                }
            }
            catch (Exception)
            {
                lblError.Text = "Excel列名不匹配";
                return;
            }

            var tarTable = "TB_LongEmployeeTemp";
            var db       = DBO.GetInstance();

            //delete old
            var commSql = db.DbProviderFactory.CreateCommand();

            commSql.CommandType = System.Data.CommandType.Text;
            commSql.CommandText = "delete from TB_LongEmployeeTemp";
            db.ExecuteNonQuery(commSql);

            //bulk insert
            var sErr = DataTableHelper.BulkToDB(db.CreateConnection().ConnectionString,
                                                dt,
                                                tarTable);

            if (!string.IsNullOrEmpty(sErr))
            {
                lblError.Text = sErr;
                return;
            }
            else
            {
                lblError.Text = string.Empty;
            }

            //merge
            var comm = db.DbProviderFactory.CreateCommand();

            comm.CommandType = System.Data.CommandType.StoredProcedure;
            comm.CommandText = "Proc_Merge_LongEmployee";
            try
            {
                db.ExecuteNonQuery(comm);
                lblSuccess.Text = "上传完成!";
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
            }
        }