HELP传参

来源:互联网 发布:sketchup pro mac版 编辑:程序博客网 时间:2024/05/16 19:51
/// <summary>
        /// 连接数据源
        /// </summary>
        public static SqlConnection conn = null;
        /// <summary>
        /// 返回值
        /// </summary>
        private static readonly string RETURNVALUE = "RETURNVALUE";
        /// <summary>
        /// 打开数据库连接
        /// </summary>
        public static void open()
        {
            // 打开数据库连接
            if (conn == null)
            {
                conn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ToString());
            }
            if (conn.State == ConnectionState.Closed)
            {
                try
                {
                    ///打开数据库连接
                    conn.Open();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    ///关闭已经打开的数据库连接    
                }
            }
        }
        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public static void Close()
        {
            ///判断连接是否已经创建
            if (conn != null)
            {
                ///判断连接的状态是否打开
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
        /// <summary>
        /// 释放资源
        /// </summary>
        public static void Dispose()
        {
            // 确认连接是否已经关闭
            if (conn != null)
            {
                conn.Dispose();
                conn = null;
            }
        }
        /// <summary>
        /// 生成存储过程参数
        /// </summary>
        /// <param name="ParamName">存储过程名称</param>
        /// <param name="DbType">参数类型</param>
        /// <param name="Size">参数大小</param>
        /// <param name="Direction">参数方向</param>
        /// <param name="Value">参数值</param>
        /// <returns>新的 parameter 对象</returns>
        public static SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
        {
            SqlParameter param;
            ///当参数大小为0时,使用该参数大小值
            if (Size > 0)
            {
                param = new SqlParameter(ParamName, DbType, Size);
            }
            else
            {
                ///当参数大小为0时,不使用该参数大小值
                param = new SqlParameter(ParamName, DbType);
            }
            ///创建输出类型的参数
            param.Direction = Direction;
            if (!(Direction == ParameterDirection.Output && Value == null))
            {
                param.Value = Value;
            }
            ///返回创建的参数
            return param;
        }
        /// <summary>
        /// 传入输入参数
        /// </summary>
        /// <param name="ParamName">存储过程名称</param>
        /// <param name="DbType">参数类型</param></param>
        /// <param name="Size">参数大小</param>
        /// <param name="Value">参数值</param>
        /// <returns>新的parameter 对象</returns>
        public static SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
        {
            return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
        }
        public static SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int Size, object Value)
        {
            return CreateParam(ParamName, DbType, Size, ParameterDirection.Output, Value);
        }
        /// <summary>
        /// 创建一个SqlCommand对象以此来执行存储过程
        /// </summary>
        /// <param name="procName">存储过程的名称</param>
        /// <param name="prams">存储过程所需参数</param>
        /// <returns>返回SqlCommand对象</returns>
        private static SqlCommand CreateProcCommand(string procName, SqlParameter[] prams)
        {
            ///打开数据库连接
            open();
            ///设置Command
            SqlCommand cmd = new SqlCommand(procName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            ///添加把存储过程的参数
            if (prams != null)
            {
                foreach (SqlParameter parameter in prams)
                {
                    cmd.Parameters.Add(parameter);
                }
            }

            ///添加返回参数ReturnValue
            cmd.Parameters.Add(
                new SqlParameter(RETURNVALUE, SqlDbType.Int, 4, ParameterDirection.ReturnValue,
                false, 0, 0, string.Empty, DataRowVersion.Default, null));
            ///返回创建的SqlCommand对象
            return cmd;
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        /// <param name="prams">存储过程所需参数</param>
        /// <returns>返回存储过程返回值</returns>
        public static int RunProc(string procName, SqlParameter[] prams)
        {
            SqlCommand cmd = CreateProcCommand(procName, prams);
            try
            {
                ///执行存储过程
                return cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                ///记录错误日志
                throw new Exception(ex.Message);
            }
            finally
            {
                ///关闭数据库的连接
                Close();
            }
            ///返回存储过程的参数值
            //return (int)cmd.Parameters[RETURNVALUE].Value;
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="param"></param>
        public static void RunProcUpdate(string procName, SqlParameter[] param)
        {
            SqlCommand cmd = CreateProcCommand(procName, param);
            try
            {
                ///执行存储过程
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                ///记录错误日志
                throw new Exception(ex.Message);
            }
            finally
            {
                ///关闭数据库的连接
                Close();
            }
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName">存储过程的名称</param>
        /// <param name="dataReader">返回存储过程返回值</param>
        public static void RunProc(string procName, out SqlDataReader dataReader)
        {
            ///创建Command
            SqlCommand cmd = CreateProcCommand(procName, null);
            try
            {
                ///读取数据
                dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                dataReader = null;
                ///记录错误日志
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName">存储过程的名称</param>
        /// <param name="prams">存储过程所需参数</param>
        /// <param name="dataSet">返回DataReader对象</param>
        public static void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
        {
            ///创建Command
            SqlCommand cmd = CreateProcCommand(procName, prams);
            try
            {
                ///读取数据
                dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                dataReader = null;
                ///记录错误日志
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// 创建一个DataSet来存储数据
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        /// <returns></returns>
        public static DataSet CreateDataset(string procName)
        {
            open();
            try
            {
                SqlCommand cmd = CreateProcCommand(procName, null);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                cmd.ExecuteNonQuery();
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                Close();
            }
        }
        /// <summary>
        /// 创建一个DataSet来存储数据
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        /// <param name="prams">存储过程参数</param>
        /// <returns></returns>
        public static DataSet CreateDataSet(string procName, SqlParameter[] prams)
        {
            open();
            try
            {
                SqlCommand cmd = CreateProcCommand(procName, prams);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                cmd.ExecuteNonQuery();
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                Close();
            }
        }
        public static string CreateString(string procName, SqlParameter[] prams)
        {
            open();
            try
            {
                SqlCommand cmd = CreateProcCommand(procName, prams);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.ExecuteNonQuery();
                string strResult = cmd.Parameters[RETURNVALUE].Value.ToString();
                Close();
                return strResult;
            }
            catch (Exception ex)
            {
                Close();
                throw new Exception(ex.Message);
            }
        }
        public static bool CreateBool(string procName, SqlParameter[] prams)
        {
            open();
            try
            {
                SqlCommand cmd = CreateProcCommand(procName, prams);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.ExecuteNonQuery();
                return true;
            }
            catch (Exception ex)
            {
                return false;
                throw new Exception(ex.Message);
            }
        }
 
        public static string RunProc(string ProcName, SqlParameter[] param, string ReturnInfo)
        {
            SqlCommand cmd = CreateProcCommand(ProcName, param);
            try
            {
                cmd.ExecuteNonQuery();
                return cmd.Parameters[ReturnInfo].Value.ToString();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                Close();
            }
        }
        public static DataTable bangding(string text)
        {
            open();
            SqlCommand cmd = new SqlCommand(text, SqlHelp.conn);
            SqlDataAdapter dr = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            dr.Fill(dt);
            Close();
            return dt;
        }
原创粉丝点击