private void ReadIIC(IDictionary <string, Model.DecisionProjectObjGJ> ts, Model.DetectRecordObjGJ detectRecordObj, DataTable dtUnitAreaConfig, DataTable dtSystemConfig, int intDataID, int intRecordID, int intTaskID, int intPlanID, string strIICPath, string strFileName, string strImpDes) { string strIICFullPath = GetIICDirection(dtSystemConfig) + strIICPath + "\\" + strFileName; using (OleDbConnection oleCn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strIICFullPath + ";Persist Security Info=True")) { oleCn.Open(); OleDbCommand cmd = new OleDbCommand("select * from defects_new", oleCn); OleDbDataReader myRed; bool bFxIsExists = true; try { myRed = cmd.ExecuteReader(); } catch { bFxIsExists = false; } string strSQLForDefects = string.Empty; string strSQLForTQI = string.Empty; if (!bFxIsExists) { strSQLForDefects = "select * from defects where valid <> 'N' and severity is not null"; strSQLForTQI = "TRANSFORM max([tqivalue]) SELECT [FROMPOST],round((round([basepost],3)-[FROMPOST])*1000,0) as [FROMMINOR] FROM tqi GROUP BY [FROMPOST],round((round([basepost],3)-[FROMPOST])*1000,0) PIVOT [tqimetricname]"; } else { //new表存在的情况 strSQLForDefects = "select * from defects_new where IsValid=1"; //strSQLForTQI = "TRANSFORM max([tqivalue]) SELECT [FROMPOST],[FROMMINOR] FROM fix_tqi GROUP BY [FROMPOST],[FROMMINOR] PIVOT [tqimetricname]"; strSQLForTQI = "select * FROM tqi_new"; } DataTable dtDefectsData = new DataTable("defects"); OleDbDataAdapter dapt = new OleDbDataAdapter(); dapt.SelectCommand = new OleDbCommand(); dapt.SelectCommand.Connection = oleCn; dapt.SelectCommand.CommandText = strSQLForDefects; dapt.Fill(dtDefectsData); DataTable dtTQIData = new DataTable("tqi"); dapt.SelectCommand.CommandText = strSQLForTQI; dapt.Fill(dtTQIData); UtilityDBGJ utility = new UtilityDBGJ(); int intImpID = utility.OperatorImpLog(intDataID, intRecordID, strFileName, strIICPath, strImpDes); OracleConnection cn = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OraConnStringGJ"].ConnectionString); cn.Open(); //OracleTransaction transaction = cn.BeginTransaction(); OracleCommand cmdInner = new OracleCommand(); cmdInner.CommandType = CommandType.Text; cmdInner.Connection = cn; //cmdInner.Transaction = transaction; try { UtilityDBGJ.CreateErrorLog("开始导入TQI数据!"); utility.OperatorTQI(cmdInner, detectRecordObj, dtUnitAreaConfig, dtTQIData, bFxIsExists, intImpID, intRecordID, intTaskID, intPlanID); UtilityDBGJ.CreateErrorLog("完成导入TQI数据!"); UtilityDBGJ.CreateErrorLog("开始导入号为:" + intImpID.ToString() + "的文件"); utility.OperatorDefects(cmdInner, ts, detectRecordObj, dtUnitAreaConfig, dtDefectsData, intImpID, intRecordID, intTaskID, intPlanID); UtilityDBGJ.CreateErrorLog("完成导入号为:" + intImpID.ToString() + "的文件"); UtilityDBGJ.CreateErrorLog("开始执行存储过程!"); utility.OperatorStore(cmdInner, intImpID, intRecordID, dtSystemConfig, 1); utility.OperatorStore(cmdInner, intImpID, intRecordID, dtSystemConfig, 0); UtilityDBGJ.CreateErrorLog("完成执行存储过程!"); //transaction.Commit(); utility.SetDetectDataManage(intDataID); } catch (Exception e) { //transaction.Rollback(); utility.SetImpLog(e.Message.ToString(), intImpID); } finally { cmdInner.Dispose(); if (cn.State != ConnectionState.Closed) { cn.Close(); } if (cn != null) { cn.Dispose(); } } } }