private void NewMethod(TransactionDelegate trd) { try { if (isHaveError) { return; } st1.Restart(); //SaveHelperStatus = string.Format("开始执行SQL"); if (trd != null && trd.isHaveError) { return; } temSql1.AppendFormat(" insert into MONOLINGUALSENTENCE{0}(ID,Content,Original,HW_Relevance) values(:ID,:Content,:Original,:HW_Relevance)", fromLang); temParam1.Add(new OracleParameter(":ID", OracleDbType.Varchar2, guidList1.ToArray(), System.Data.ParameterDirection.Input)); temParam1.Add(new OracleParameter(":Content", OracleDbType.Varchar2, contentList1.ToArray(), System.Data.ParameterDirection.Input)); temParam1.Add(new OracleParameter(":Original", OracleDbType.Varchar2, originalList.ToArray(), System.Data.ParameterDirection.Input)); temParam1.Add(new OracleParameter(":HW_Relevance", OracleDbType.Int32, HW_RelevanceList.ToArray(), System.Data.ParameterDirection.Input)); temSql2.AppendFormat(" insert into MONOLINGUALSENTENCE{0}(ID,Content,Original,HW_Relevance) values(:ID,:Content,:Original,:HW_Relevance)", toLang); temParam2.Add(new OracleParameter(":ID", OracleDbType.Varchar2, guidList2.ToArray(), System.Data.ParameterDirection.Input)); temParam2.Add(new OracleParameter(":Content", OracleDbType.Varchar2, contentList2.ToArray(), System.Data.ParameterDirection.Input)); temParam2.Add(new OracleParameter(":Original", OracleDbType.Varchar2, originalList.ToArray(), System.Data.ParameterDirection.Input)); temParam2.Add(new OracleParameter(":HW_Relevance", OracleDbType.Int32, HW_RelevanceList.ToArray(), System.Data.ParameterDirection.Input)); string temStr1 = string.Format(":{0}ID", fromLang); string temStr2 = string.Format(":{0}ID", toLang); temSql3.AppendFormat(" insert into BILINGUALSENTENCE{0}{1}(ID,{0}ID,{1}ID) values(:ID,{2},{3}) ", fromLang, toLang, temStr1, temStr2); temParam3.Add(new OracleParameter(":ID", OracleDbType.Varchar2, guidList.ToArray(), System.Data.ParameterDirection.Input)); temParam3.Add(new OracleParameter(temStr1, OracleDbType.Varchar2, guidList1.ToArray(), System.Data.ParameterDirection.Input)); temParam3.Add(new OracleParameter(temStr2, OracleDbType.Varchar2, guidList2.ToArray(), System.Data.ParameterDirection.Input)); SaveHelperStatus = string.Format("开始保存语言{0}:{1}", fromLang, guidList.ToArray()); re = OracleHelper.ExecuteNonQuery(trd.temTR, CommandType.Text, temSql1.ToString(), guidList.Count, temParam1.ToArray()); if (re > 0) { SaveHelperStatus = string.Format("保存语言{0}成功:{1}", fromLang, re); re = OracleHelper.ExecuteNonQuery(trd.temTR, CommandType.Text, temSql2.ToString(), guidList.Count, temParam2.ToArray()); if (re > 0) { SaveHelperStatus = string.Format("保存语言{0}成功:{1}", toLang, re); re = OracleHelper.ExecuteNonQuery(trd.temTR, CommandType.Text, temSql3.ToString(), guidList.Count, temParam3.ToArray()); if (re > 0) { SaveHelperStatus = string.Format("保存语言{0}_{1}成功:{2}", fromLang, toLang, re); if (trd.temTR != null) { try { trd.Commit(); lock (loc) { saveTatol -= re; } } catch (Exception ex) { SaveHelperStatus = string.Format("保存语言{0}_{1}失败:{2}", fromLang, toLang, guidList.Count); //MessageBox.Show("最后执行commit时出现错误了"+ex.Message); isHaveError = true; trd.Rollback(); } } else { isHaveError = true; trd.Rollback(); } } } else { SaveHelperStatus = string.Format("保存语言{0}失败:{1}", toLang, guidList.Count); isHaveError = true; trd.Rollback(); } } else { SaveHelperStatus = string.Format("保存语言{0}失败:{1}", fromLang, guidList.Count); isHaveError = true; trd.Rollback(); } } catch (Exception ex) { isHaveError = true; SaveHelperStatus = ex.Message; } if (!isHaveError) { SaveHelperStatus = string.Format("执行{0}:{1}s", guidList.Count().ToString(), (st1.ElapsedMilliseconds / (double)1000).ToString()); } else { SaveHelperStatus = string.Format("SQL执行出现了错误{0}:{1}s", SaveHelperStatus, (st1.ElapsedMilliseconds / (double)1000).ToString()); } ClearParam(); st2.Reset(); }