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 + "条!"); } }
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); }