Esempio n. 1
0
        /// <summary>
        /// 执行存储过程语句
        /// </summary>
        /// <param name="proc">存储过程名称</param>
        /// <param name="func">需要包含在事务中方法委托</param>
        /// <param name="param">委托方法的参数</param>
        /// <param name="commandParameters">可变个数的参数</param>
        /// <returns>返回影响的记录行数</returns>
        public static int ExecuteByProc(string proc, TransExecDelegate func, object param, params SqlParameter[] commandParameters)
        {
            using (SqlConnection conn = GetSqlConnection())
            {
                SqlCommand cmd = new SqlCommand();

                SqlTransaction transaction = conn.BeginTransaction();

                SqlHelper.PrepareCommand(cmd, conn, transaction, CommandType.StoredProcedure, proc, commandParameters);

                try
                {
                    int rows = cmd.ExecuteNonQuery();

                    if (func != null)
                    {
                        func(param);
                    }

                    transaction.Commit();

                    return(rows);
                }
                catch (Exception e)
                {
                    transaction.Rollback();

                    throw e;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 执行存储过程语句
        /// </summary>
        /// <param name="proc">存储过程名称</param>
        /// <param name="func">需要包含在事务中方法委托</param>
        /// <param name="param">委托方法的参数</param>
        /// <param name="parameters">可变个数的参数</param>
        /// <returns>返回影响的记录行数</returns>
        public static int ExecuteByProc(string proc, TransExecDelegate func, object param, params object[] parameters)
        {
            if ((parameters != null) && (parameters.Length > 0))
            {
                SqlParameter[] commandParameters = GetSpParameterSet(proc);

                AssignParameterValues(commandParameters, parameters);

                return(ExecuteByProc(proc, func, param, commandParameters));
            }
            else
            {
                return(ExecuteByProc(proc, func, param, (SqlParameter[])null));
            }
        }