Пример #1
0
 private static void ProcessDbProvider(ParameterUtil sup, ProcessFunDelegate fun, DbType dbType, bool inTransaction)
 {
     using (IDbProvider dbProvider = DbFactoryProvider.GetProvider(GetDbType(dbType)))
     {
         try
         {
             dbProvider.Open(GetDbConnection(dbType));
             if (inTransaction)
             {
                 dbProvider.BeginTransaction();
             }
             fun(dbProvider);
             AddLog(dbProvider, sup);
             if (inTransaction)
             {
                 dbProvider.CommitTransaction();
             }
         }
         catch (Exception ex)
         {
             if (inTransaction)
             {
                 dbProvider.RollbackTransaction();
             }
             CiExceptionManager.LogException(dbProvider, sup.UserInfo, ex);
             throw;
         }
         finally
         {
             dbProvider.Close();
         }
     }
 }
Пример #2
0
        public void SaveChanges()
        {
            SqlTransaction transactionResult = _ormProvider.BeginTransaction();

            try
            {
                _ormProvider.CommitTransaction(transactionResult);
            }
            catch (Exception)
            {
                _ormProvider.RollbackTransaction(transactionResult);
            }
        }
Пример #3
0
        /// <summary>
        /// 批量删除数据
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="ids">主键数组</param>
        /// <returns>影响行数</returns>
        public int BatchDelete(UserInfo userInfo, string[] ids)
        {
            int returnValue = 0;

            using (IDbProvider rdiDbProvider = DbFactoryProvider.GetProvider(SystemInfo.RDIFrameworkDbType))
            {
                try
                {
                    rdiDbProvider.Open(RDIFrameworkDbConection);
                    LogManager.Instance.Add(rdiDbProvider, userInfo, this.serviceName, "批量删除数据", MethodBase.GetCurrentMethod());

                    using (IDbProvider dbProvider = DbFactoryProvider.GetProvider(BusinessDbType))
                    {
                        try
                        {
                            dbProvider.Open(BusinessDbConnection);
                            // 开始事务
                            dbProvider.BeginTransaction();
                            LinkManManager manager = new LinkManManager(dbProvider, userInfo);
                            returnValue = manager.Delete(ids);
                            // 提交事务
                            dbProvider.CommitTransaction();
                        }
                        catch (Exception ex)
                        {
                            // 回滚事务
                            dbProvider.RollbackTransaction();
                            CiExceptionManager.LogException(rdiDbProvider, userInfo, ex);
                            throw ex;
                        }
                        finally
                        {
                            dbProvider.Close();
                        }
                    }
                }
                catch (Exception ex)
                {
                    CiExceptionManager.LogException(rdiDbProvider, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    rdiDbProvider.Close();
                }
            }

            return(returnValue);
        }
Пример #4
0
 //事务测试
 private void toolStripButton2_Click(object sender, EventArgs e)
 {
     dbProvider.Open();
     dbProvider.BeginTransaction();
     try
     {
         string sql    = "insert into test1(Id,Col1,Col2,Col3) values('" + BusinessLogic.NewGuid() + "','abcd',2,'kk')";
         int    value1 = dbProvider.ExecuteNonQuery(sql);
         //sql = "insert into test2(Id,Col1,Col2) values('" + BusinessLogic.NewGuid() + "','4','kk')";
         sql = "insert into test2(Id,Col2) values('" + BusinessLogic.NewGuid() + "','kk')";
         int value2 = dbProvider.ExecuteNonQuery(sql); //插入失败,则第一条语句也失败。
         dbProvider.CommitTransaction();
     }
     catch (Exception ex)
     {
         dbProvider.RollbackTransaction();
         MessageBoxHelper.ShowErrorMsg(ex.Message);
     }
     finally
     {
         dbProvider.Close();
     }
 }
Пример #5
0
 public void CompleteTransaction()
 {
     _idbProvider.CommitTransaction();
 }
Пример #6
0
 public override Task CommitTransaction() => Provider.CommitTransaction();