diff --git a/.vs/CNAS_DBSync/v15/.suo b/.vs/CNAS_DBSync/v15/.suo index b059ed0..dd922de 100644 Binary files a/.vs/CNAS_DBSync/v15/.suo and b/.vs/CNAS_DBSync/v15/.suo differ diff --git a/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide b/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide index e07fb90..f53de95 100644 Binary files a/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide and b/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide-wal b/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide-wal index 117d9f8..c7730b5 100644 Binary files a/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide-wal and b/.vs/CNAS_DBSync/v15/Server/sqlite3/storage.ide-wal differ diff --git a/CNAS_DBSync/SelectTableType.cs b/CNAS_DBSync/SelectTableType.cs index 08293d5..7bd988a 100644 --- a/CNAS_DBSync/SelectTableType.cs +++ b/CNAS_DBSync/SelectTableType.cs @@ -1,6 +1,7 @@ using CnasSynchronousCommon; using CnasSynchronusDAL; using CnasSynchrousModel; +using Oracle.ManagedDataAccess.Client; using System; using System.Collections.Generic; using System.Data; @@ -143,5 +144,48 @@ WHERE } + + public static DataTable OrcSql(string strTableName, SyncInstrumentItemInfo t) { + connectionStr = $"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={t.SyncInstrumentDSInfo.Host})(PORT={t.SyncInstrumentDSInfo.Port}))" + $"(CONNECT_DATA=(SID={t.SyncInstrumentDSInfo.ServerName})));User Id={t.SyncInstrumentDSInfo.UserId};Password={t.SyncInstrumentDSInfo.UserPwd};"; + DataTable dt = new DataTable(); + string strSql = string.Format("select COLUMN_NAME AS ColumnName,NULLABLE AS IsNullable,DATA_TYPE AS DataType,DATA_LENGTH AS CharMaxLenth,DATA_LENGTH AS CharOcterLenth,DATA_PRECISION AS NumericPrecision,DATA_SCALE AS NumericScale from user_tab_columns where table_name='{0}'", strTableName.ToUpper()); + try + { + dt = GetDataTable(strSql, new OracleParameter[] { }); + } + catch (Exception ex) + { + AppLog.Error(ex.Message); + } + return dt; + } + + /// + /// 查询操作 + /// + /// + /// + public static DataTable GetDataTable(string sql, params OracleParameter[] sp) + { + DataTable dt = new DataTable(); + try + { + using (OracleConnection conn = new OracleConnection(connectionStr)) + { + conn.Open(); + //using (OracleDataAdapter sda = new OracleDataAdapter("select * from t_weight_info where WEIGH_DATE > '2019-10-02 14:20:12'", conn)) + using (OracleDataAdapter sda = new OracleDataAdapter(sql, conn)) + { + sda.SelectCommand.Parameters.AddRange(sp); + sda.Fill(dt); + } + } + } + catch (Exception ex) + { + AppLog.Error(ex.Message); + } + return dt; + } } } diff --git a/CNAS_DBSync/frmSyncParams.cs b/CNAS_DBSync/frmSyncParams.cs index 265acc9..96fdc3d 100644 --- a/CNAS_DBSync/frmSyncParams.cs +++ b/CNAS_DBSync/frmSyncParams.cs @@ -301,13 +301,12 @@ namespace CNAS_DBSync { case DataSourceType.MySQL: dtTableType = SelectTableType.MySqlsec(strTableName_Instru); - break; case DataSourceType.Dm: dtTableType = SelectTableType.DmSql(strTableName_Instru); break; case DataSourceType.Oracle: - + dtTableType = SelectTableType.OrcSql(strTableName_Instru, currentSyncItem); break; case DataSourceType.PostgreSQL: dtTableType = SelectTableType.PostgreSql(strTableName_Instru); @@ -315,17 +314,9 @@ namespace CNAS_DBSync case DataSourceType.SQL: dtTableType = SelectTableType.Sqlserversec(strTableName_Instru, currentSyncItem); break; - case DataSourceType.SQLLite: default: - break; } - - - //dtTableType = CnasDataOperationFact.CnasDataOperation().GetCNASTableTypeLenth(strTableName_Instru, currentSyncItem.SyncTargetDBInfo); - - //string strTableName_Instru = cbxInstrument.Text.ToString(); - DataTable dtInstruShow = new DataTable(); dtInstruShow.Columns.Add("InstruFieldName"); dtInstruShow.Columns.Add("InstruDataType"); @@ -336,23 +327,7 @@ namespace CNAS_DBSync } dgvInstruDS.DataSource = dtInstruShow; - //if (dictInstruTables.ContainsKey(strTableName_Instru)) - //{ - // DataTable dt = dictInstruTables[strTableName_Instru]; - // if (dt != null) - // { - // DataTable dtInstruShow = new DataTable(); - // dtInstruShow.Columns.Add("InstruFieldName"); - // dtInstruShow.Columns.Add("InstruDataType"); - - // foreach (DataColumn dc in dt.Columns) - // { - // dtInstruShow.Rows.Add(new object[] { dc.ColumnName,dc.DataType}); - // } - - - // } - //} + } /// @@ -366,26 +341,12 @@ namespace CNAS_DBSync string strTableName_Cnas = cbxCnas.Text.ToString(); - //if (currentSyncItem.CnasInstrumentColumn != null && currentSyncItem.CnasInstrumentColumn != "") - //{ - // DialogResult dr = MessageBox.Show("已存在配置完成的CNAS仪器对应列,切换表将导致该配置失效,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); - // if (dr == DialogResult.No) - // { - // return; - // } - //} - DataTable dtTableStruct = CnasDataOperationFact.CnasDataOperation().GetCNASTableTypeLenth(strTableName_Cnas, currentSyncItem.SyncTargetDBInfo); //从数据库中加载数据表结构 //DataTable dtTableStruct = CnasDataOperationFact.CnasDataOperation().GetCNASTablesStruct(strTableName_Cnas,currentSyncItem.SyncTargetDBInfo); if (dtTableStruct != null) { - - //DataTable dtTableType = CnasDataOperationFact.CnasDataOperation().GetCNASTableTypeLenth(strTableName_Instru, currentSyncItem.SyncTargetDBInfo); - - //string strTableName_Instru = cbxInstrument.Text.ToString(); - DataTable dtCnasShow = new DataTable(); dtCnasShow.Columns.Add("CnasFieldName"); dtCnasShow.Columns.Add("CnasDataType");