Esempio n. 1
0
        protected virtual void Import()
        {
            if (!this.ValidateImport())
            {
                return;
            }

            DataTable excelTable = this.grdData.DataSource as DataTable;

            int rowCount = excelTable.Rows.Count;

            m_TimePk = DateTime.Now.ToString("yyyyMMddHHmmss");

            XImportResultInfo resultInfo = this.ImportOperate(excelTable);

            resultInfo.Count = rowCount;
            if (resultInfo.FailureCount > 0)
            {
                int failueCount  = resultInfo.FailureCount;
                int successCount = resultInfo.SuccessCount;

                int notExecCount = resultInfo.Count - successCount - failueCount;

                XMessageBox.ShowRemindMessage("成功导入" + successCount + "条,失败" + failueCount + "条,未执行" + notExecCount + "条!");
                frmOperateResult frm = new frmOperateResult(resultInfo.Results);
                frm.ShowDialog();
            }
            else
            {
                XMessageBox.ShowRemindMessage("成功导入" + rowCount + "条!");
            }
        }
Esempio n. 2
0
        protected virtual XImportResultInfo ImportOperate(DataTable excelTable)
        {
            XImportResultInfo resultInfo = new XImportResultInfo();
            IList <XOperateSingleResultInfo> resultInfos = new List <XOperateSingleResultInfo>();

            resultInfo.Results = resultInfos;

            this.proImport.Maximum = excelTable.Rows.Count;
            this.proImport.Value   = 0;

            m_LoopNo = 0;

            foreach (DataRow excelRow in excelTable.Rows)
            {
                m_LoopNo += 1;

                XOperateSingleResultInfo singleResult = this.ImportSingleRow(excelRow);

                if (singleResult.IsSuccess == false)
                {
                    resultInfo.FailureCount += 1;
                    resultInfos.Add(singleResult);
                    string errorMsg = "关键字:[{0}]导入失败,失败原因:\r\n{1},\r\n是否继续?";
                    errorMsg = string.Format(errorMsg, singleResult.Key, singleResult.ErrorInfo);
                    if (XMessageBox.ShowQuestion(errorMsg) == System.Windows.Forms.DialogResult.No)
                    {
                        this.proImport.Value = this.proImport.Maximum;
                        break;
                    }
                }
                else
                {
                    resultInfo.SuccessCount += 1;
                }
                this.proImport.Value += 1;
                Application.DoEvents();
            }

            return(resultInfo);
        }