/// <summary>
        /// 执行sql语句,返回影响行数 带事务
        /// </summary>
        /// <param name="dbTranscaion">事务对象</param>
        /// <param name="sql">sql语句</param>
        /// <param name="parameters">参数</param>
        /// <returns>影响行数</returns>
        /// 时间:2015-11-24 9:31
        /// 备注:
        public int ExecuteNonQuery(SqlServerTransaction dbTranscaion, string sql, DbParameter[] parameters)
        {
            int _affectedRows = -1;

            CheckedSqlParamter(sql);
            DbTransaction _sqlTranscation = dbTranscaion.TransactionObj;
            DbConnection  _sqlConnection  = _sqlTranscation.Connection;

            try
            {
                if (_sqlConnection.State != ConnectionState.Open)
                {
                    _sqlConnection.Open();
                }

                using (DbCommand sqlCmd = new SqlCommand(sql))
                {
                    sqlCmd.Connection  = _sqlConnection;
                    sqlCmd.Transaction = _sqlTranscation;

                    if (parameters != null)
                    {
                        sqlCmd.Parameters.AddRange(parameters);
                    }

                    _affectedRows = sqlCmd.ExecuteNonQuery();
                }
            }
            catch (SqlException ex)
            {
                throw CreateFrameworkException(sql, parameters, ex);
            }

            return(_affectedRows);
        }
예제 #2
0
 public void ExecuteNonQueryTest1()
 {
     using (SqlServerTransaction tranObj = SqlHelper.BeginTranscation())
     {
         try
         {
             string _sql = "insert into [Person](PName,PAge,PAddress) values(@pname,@page,@paddress)";
             SqlHelper.ExecuteNonQuery(tranObj, _sql,
                                       new DbParameter[3]
             {
                 new SqlParameter("@pname", "YanZhiwei"),
                 new SqlParameter("@page", 18),
                 new SqlParameter("@paddress", "zhuzhou")
             });
             throw new System.Exception("test");
             SqlHelper.ExecuteNonQuery(tranObj, _sql,
                                       new DbParameter[3]
             {
                 new SqlParameter("@pname", "YanZhiwei2"),
                 new SqlParameter("@page", 19),
                 new SqlParameter("@paddress", "zhuzhou2")
             });
             tranObj.CommitTransaction();
         }
         catch (System.Exception ex)
         {
             tranObj.RollbackTransaction();
         }
     }
 }
        /// <summary>
        /// 保存角色权限设置
        /// </summary>
        /// <param name="roleName">角色名称</param>
        /// <param name="roleCode">角色代码</param>
        /// <param name="modulePermissionId">模块操作标识ID数组</param>
        /// <returns>
        /// 保存是否成功
        /// </returns>
        /// 时间:2016-04-29 10:25
        /// 备注:
        public bool UpdateRole(string roleName, string roleCode, string[] modulePermissionId)
        {
            ValidateHelper.Begin().NotNullOrEmpty(roleName, "角色名称").NotNullOrEmpty(roleCode, "角色代码").NotNull(modulePermissionId, "角色对应模块操作标识ID数组");

            bool _result = false;

            using (SqlServerTransaction sqlTran = sqlHelper.BeginTranscation())
            {
                try
                {
                    SqlParameter[] _paramter = new SqlParameter[1];
                    _paramter[0] = new SqlParameter("@roleCode", roleCode);
                    sqlHelper.ExecuteNonQuery(sqlTran, "delete from RolePermissions where R_Code=@roleCode;", _paramter);

                    _paramter    = new SqlParameter[3];
                    _paramter[0] = new SqlParameter("@roleCode", roleCode);
                    _paramter[1] = new SqlParameter("@roleName", roleName);
                    _paramter[2] = new SqlParameter("@roleCodeWhere", roleCode);
                    sqlHelper.ExecuteNonQuery(sqlTran, "update Roles set R_Code=@roleCode,R_Name=@roleName where R_Code=@roleCodeWhere", _paramter);

                    foreach (string s in modulePermissionId)
                    {
                        if (!string.IsNullOrEmpty(s))
                        {
                            _paramter    = new SqlParameter[2];
                            _paramter[0] = new SqlParameter("@roleCode", roleCode);
                            _paramter[1] = new SqlParameter("@mpId", s);
                            sqlHelper.ExecuteNonQuery(sqlTran, "insert into dbo.RolePermissions values(@roleCode,@mpId)", _paramter);
                        }
                    }
                    sqlTran.CommitTransaction();
                    _result = true;
                }
                catch (Exception)
                {
                    sqlTran.RollbackTransaction();
                    _result = false;
                }
                return(_result);
            }
        }