Ejemplo n.º 1
0
        /// <summary>
        /// 用户抽奖更新数据操作
        /// </summary>
        /// <param name="userInfo">用户信息</param>
        /// <param name="userLotteryInfo">用户抽奖信息</param>
        /// <returns>受影响的行数</returns>
        public Int32 UserLotteryTran(UserInfoModel userInfo, LotteryDrawModel userLotteryInfo)
        {
            MySqlTransaction sqlTransaction = null;

            //打开连接,对用户更新以及用户抽奖更新进行事务处理
            using (MySqlConnection conn = new MySqlConnection(MySqlHelper.Conn))
            {
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }

                try
                {
                    //开始事务
                    sqlTransaction = conn.BeginTransaction(IsolationLevel.ReadCommitted);

                    Int32 returnVal = UserInfoDal.Instance.UpdateUserInfo(sqlTransaction, userInfo);
                    returnVal += LotteryDrawDal.Instance.UpdateLotteryDrawInfo(sqlTransaction, userLotteryInfo);

                    //提交事务
                    sqlTransaction.Commit();

                    return(returnVal);
                }
                catch (Exception)
                {
                    //捕获到错误后,先回滚错误,并将错误消息抛出给顶层显示
                    if (sqlTransaction != null)
                    {
                        sqlTransaction.Rollback();
                    }

                    throw;
                }
            }
        }