From cea542f94f60b334b743392132fadf811452e17b Mon Sep 17 00:00:00 2001 From: "DESKTOP-58BB7H3\\ZJH" Date: Wed, 26 Feb 2025 17:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CNAS_DBSync/frmSyncParams.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CNAS_DBSync/frmSyncParams.cs b/CNAS_DBSync/frmSyncParams.cs index a632ee8..fa28eb3 100644 --- a/CNAS_DBSync/frmSyncParams.cs +++ b/CNAS_DBSync/frmSyncParams.cs @@ -266,9 +266,12 @@ namespace CNAS_DBSync if (currentSyncItem.SyncInstrumentDSInfo != null && currentSyncItem.SyncInstrumentDSInfo.InstrumentDataSourceType != DataSourceType.None) { - dgvMapping.DataSource = new BindingList(currentSyncItem.LstSyncPramas); + + if (currentSyncItem.LstSyncPramas != null) + dgvMapping.DataSource = new BindingList(currentSyncItem.LstSyncPramas); if (currentSyncItem.SyncInstrumentDSInfo.ServerName != "") btnLoadDBData_Click(sender, e); + } else { @@ -288,13 +291,17 @@ namespace CNAS_DBSync private void cbxInstrument_SelectedIndexChanged(object sender, EventArgs e) { if (cbxInstrument.Text == null) return; + string strInstrumentCode = this.dgvInstrument.Rows[this.dgvInstrument.CurrentRow.Index].Cells[0].Value.ToString(); + + // 使用LINQ查找匹配的数据 + SyncInstrumentItemInfo matchedInstrument = lstSyncInstrument.FirstOrDefault(x => x.Code == strInstrumentCode); InstrumentData instrumentData = InstrumentDataFact.CreateInstrumentDataSource(currentSyncItem.SyncInstrumentDSInfo, new object[] { "", "", "" }); DataTable dtTableType = null; string strTableName_Instru = cbxInstrument.Text.ToString(); - - switch (currentSyncItem.SyncInstrumentDSInfo.InstrumentDataSourceType) + + switch (matchedInstrument.SyncInstrumentDSInfo.InstrumentDataSourceType) { case DataSourceType.MySQL: dtTableType = SelectTableType.MySqlsec(strTableName_Instru); @@ -315,6 +322,7 @@ namespace CNAS_DBSync dtTableType = SelectTableType.KingSql(strTableName_Instru); break; default: + strTableName_Instru= matchedInstrument.SyncInstrumentDSInfo.InstrumentDataSourceType.ToString(); if (dictInstruTables.ContainsKey(strTableName_Instru)) { dtTableType = dictInstruTables[strTableName_Instru]; @@ -657,7 +665,7 @@ namespace CNAS_DBSync SqlServerFormat = FileOperation.GetFormatConfigData("SqlServerFormatConfig.xml"); OracleFormat = FileOperation.GetFormatConfigData("OracleFormatConfig.xml"); NormalFileFormat = FileOperation.GetFormatConfigData("NormalFileFormatConfig.xml"); - + switch (currentSyncItem.SyncInstrumentDSInfo.InstrumentDataSourceType) { case DataSourceType.MySQL: @@ -729,9 +737,9 @@ namespace CNAS_DBSync dataTableStruct = SelectTableType.SqlserversecSD(sql, currentSyncItem); break; case DataSourceType.Kingbase: - if(cbxInstrument.Text.Contains('.')) + if (cbxInstrument.Text.Contains('.')) cbxInstrument.Text = cbxInstrument.Text.Split('.')[1]; - + dataTableStruct = SelectTableType.KingSql(sql); break; default: