示例#1
0
文件: SaveHelper.cs 项目: xjxafj/Work
        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();
        }