private void buttonSubmit_Click(object sender, EventArgs e) { //验证。。。如何验证?考虑首先验证是否有冲突项,如果有,提示是否需要覆盖保存,是,否,或者取消。 if (ImportData != null && ImportData.Rows.Count > 0) { //首先验证列是否正常。 if (!IsColumnValid(ImportData)) { return; } //其次确认是否需要删除旧数据 if (checkBox删除旧数据.Checked == true) { Program.AASServiceClient.DeleteAll可用仓位(); } //再次验证是否存在冲突数据 AASServiceReference.DbDataSet.可用仓位DataTable dtOld = Program.AASServiceClient.QueryTotalPosition(); if (HasExistData(dtOld, ImportData)) { var result = MessageBox.Show("存在组合号及证券代码相同的旧数据,覆盖,不覆盖,还是取消操作?", "导入提示", MessageBoxButtons.YesNoCancel); if (result != DialogResult.Cancel) { AddMutiPosition(ImportData, result == DialogResult.Yes); } } else { AddMutiPosition(ImportData, false); } this.Close(); } }
private DbDataSet.可用仓位DataTable ChangeToStandardDataTable(DataTable dt) { var standardDT = new AASServiceReference.DbDataSet.可用仓位DataTable(); foreach (DataRow item in dt.Rows) { var newRow = standardDT.New可用仓位Row(); newRow.组合号 = item["组合号"].ToString(); newRow.证券代码 = item["证券代码"].ToString(); newRow.证券名称 = item["证券名称"].ToString(); newRow.总仓位 = decimal.Parse(item["总仓位"].ToString()); standardDT.Add可用仓位Row(newRow); } return(standardDT); }
private void AddMutiPosition(DataTable dt, bool isCoverExist) { Task.Run(() => { try { AASServiceReference.DbDataSet.可用仓位DataTable fixedData = ChangeToStandardDataTable(dt); Program.AASServiceClient.AddMuti可用仓位(fixedData, isCoverExist); this.Invoke(new Action(() => { MessageBox.Show(string.Format("保存成功!")); })); } catch (Exception ex) { this.Invoke(new Action(() => { MessageBox.Show(string.Format("保存异常!", ex.Message)); })); } }); }
private bool HasExistData(AASServiceReference.DbDataSet.可用仓位DataTable dtOld, DataTable importData) { foreach (DataRow row in importData.Rows) { string name = row["组合号"].ToString(); string stockCode = row["证券代码"].ToString(); foreach (var item in dtOld) { if (item.组合号 == name && item.证券代码 == stockCode) { return(true); } } } return(false); }