public int ExecuteSqlTran(List <CommandInfo> list, List <CommandInfo> oracleCmdSqlList) { int result; using (System.Data.SqlClient.SqlConnection sqlConnection = new System.Data.SqlClient.SqlConnection(this.connectionString)) { sqlConnection.Open(); System.Data.SqlClient.SqlCommand sqlCommand = new System.Data.SqlClient.SqlCommand(); sqlCommand.Connection = sqlConnection; System.Data.SqlClient.SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); sqlCommand.Transaction = sqlTransaction; try { foreach (CommandInfo current in list) { string commandText = current.CommandText; System.Data.SqlClient.SqlParameter[] cmdParms = (System.Data.SqlClient.SqlParameter[])current.Parameters; DbHelperSQLP.PrepareCommand(sqlCommand, sqlConnection, sqlTransaction, commandText, cmdParms); if (current.EffentNextType == EffentNextType.SolicitationEvent) { if (current.CommandText.ToLower().IndexOf("count(") == -1) { sqlTransaction.Rollback(); throw new Exception("违背要求" + current.CommandText + "必须符合select count(..的格式"); } object obj = sqlCommand.ExecuteScalar(); if (obj == null && obj == DBNull.Value) { } bool flag = Convert.ToInt32(obj) > 0; if (flag) { current.OnSolicitationEvent(); } } if (current.EffentNextType == EffentNextType.WhenHaveContine || current.EffentNextType == EffentNextType.WhenNoHaveContine) { if (current.CommandText.ToLower().IndexOf("count(") == -1) { sqlTransaction.Rollback(); throw new Exception("SQL:违背要求" + current.CommandText + "必须符合select count(..的格式"); } object obj = sqlCommand.ExecuteScalar(); if (obj == null && obj == DBNull.Value) { } bool flag = Convert.ToInt32(obj) > 0; if (current.EffentNextType == EffentNextType.WhenHaveContine && !flag) { sqlTransaction.Rollback(); throw new Exception("SQL:违背要求" + current.CommandText + "返回值必须大于0"); } if (current.EffentNextType == EffentNextType.WhenNoHaveContine && flag) { sqlTransaction.Rollback(); throw new Exception("SQL:违背要求" + current.CommandText + "返回值必须等于0"); } } else { int num = sqlCommand.ExecuteNonQuery(); if (current.EffentNextType == EffentNextType.ExcuteEffectRows && num == 0) { sqlTransaction.Rollback(); throw new Exception("SQL:违背要求" + current.CommandText + "必须有影响行"); } sqlCommand.Parameters.Clear(); } } string conStr = PEIS.DBUtility.PubConstant.GetConnectionString("ConnectionStringPPC"); if (!OracleHelper.ExecuteSqlTran(conStr, oracleCmdSqlList)) { sqlTransaction.Rollback(); throw new Exception("Oracle执行失败"); } sqlTransaction.Commit(); result = 1; } catch (System.Data.SqlClient.SqlException ex) { sqlTransaction.Rollback(); throw ex; } catch (Exception ex2) { sqlTransaction.Rollback(); throw ex2; } } return(result); }