首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

调用存储过程通用访问类的有关问题

2012-02-09 
调用存储过程通用访问类的问题从网上找了下面这段调用存储过程的数据访问类感觉不错就是不太会调用我新手

调用存储过程通用访问类的问题
从网上找了下面这段调用存储过程的     数据访问类     感觉不错     就是不太会调用     我新手    
请帮我调用一下谢谢                 我有个存储过程叫     name     有一个输入参数     @age     类型是int     我想把10传给参数@age     应该怎么写啊    
public   class   Database   :   IDisposable
{
        //   连接数据源    
        private   SqlConnection   con;

        /**/
        ///   <summary>    
        ///   执行存储过程    
        ///   </summary>    
        ///   <param   name= "procName "> 存储过程的名称 </param>    
        ///   <returns> 返回存储过程返回值 </returns>    
        public   int   RunProc(string   procName)
        {
                SqlCommand   cmd   =   CreateCommand(procName,   null);
                cmd.ExecuteNonQuery();
                this.Close();
                return   (int)cmd.Parameters[ "ReturnValue "].Value;
        }

        /**/
        ///   <summary>    
        ///   执行存储过程    
        ///   </summary>    
        ///   <param   name= "procName "> 存储过程名称 </param>    
        ///   <param   name= "prams "> 存储过程所需参数 </param>    
        ///   <returns> 返回存储过程返回值 </returns>    
        public   int   RunProc(string   procName,   SqlParameter[]   prams)
        {
                SqlCommand   cmd   =   CreateCommand(procName,   prams);
                cmd.ExecuteNonQuery();
                this.Close();
                return   (int)cmd.Parameters[ "ReturnValue "].Value;
        }

        /**/
        ///   <summary>    
        ///   执行存储过程    
        ///   </summary>    
        ///   <param   name= "procName "> 存储过程的名称 </param>    
        ///   <param   name= "dataReader "> 返回存储过程返回值 </param>    
        public   void   RunProc(string   procName,   out   SqlDataReader   dataReader)
        {
                SqlCommand   cmd   =   CreateCommand(procName,   null);
                dataReader   =   cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);


                //return   (int)cmd.Parameters[ "ReturnValue "].Value;    
        }

        /**/
        ///   <summary>    
        ///   执行存储过程    
        ///   </summary>    
        ///   <param   name= "procName "> 存储过程的名称 </param>    
        ///   <param   name= "prams "> 存储过程所需参数 </param>    
        ///   <param   name= "dataReader "> 存储过程所需参数 </param>    
        public   void   RunProc(string   procName,   SqlParameter[]   prams,   out   SqlDataReader   dataReader)
        {
                SqlCommand   cmd   =   CreateCommand(procName,   prams);
                dataReader   =   cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                //return   (int)cmd.Parameters[ "ReturnValue "].Value;    
        }

        /**/
        ///   <summary>    
        ///   创建一个SqlCommand对象以此来执行存储过程    
        ///   </summary>    
        ///   <param   name= "procName "> 存储过程的名称 </param>    
        ///   <param   name= "prams "> 存储过程所需参数 </param>    
        ///   <returns> 返回SqlCommand对象 </returns>    
        private   SqlCommand   CreateCommand(string   procName,   SqlParameter[]   prams)
        {
                //   确认打开连接    
                Open();


                SqlCommand   cmd   =   new   SqlCommand(procName,   con);
                cmd.CommandType   =   CommandType.StoredProcedure;

                //   依次把参数传入存储过程    
                if   (prams   !=   null)
                {
                        foreach   (SqlParameter   parameter   in   prams)
                                cmd.Parameters.Add(parameter);
                }

                //   加入返回参数    
                cmd.Parameters.Add(
                        new   SqlParameter( "ReturnValue ",   SqlDbType.Int,   4,


                        ParameterDirection.ReturnValue,   false,   0,   0,
                        string.Empty,   DataRowVersion.Default,   null));

                return   cmd;
        }

        /**/
        ///   <summary>    
        ///   打开数据库连接.    
        ///   </summary>    
        private   void   Open()
        {
                //   打开数据库连接    
                if   (con   ==   null)
                {
                        con   =   new   SqlConnection( "server=.;database=accp;uid=sa;pwd=sa ");
                }
                if   (con.State   ==   System.Data.ConnectionState.Closed)
                        con.Open();

        }

        /**/
        ///   <summary>    
        ///   关闭数据库连接    
        ///   </summary>    
        public   void   Close()
        {
                if   (con   !=   null)
                        con.Close();
        }

        /**/
        ///   <summary>    
        ///   释放资源    
        ///   </summary>    
        public   void   Dispose()
        {
                //   确认连接是否已经关闭    
                if   (con   !=   null)
                {
                        con.Dispose();
                        con   =   null;
                }
        }

        /**/
        ///   <summary>    
        ///   传入输入参数    
        ///   </summary>    
        ///   <param   name= "ParamName "> 存储过程名称 </param>    
        ///   <param   name= "DbType "> 参数类型 </param> </param>    
        ///   <param   name= "Size "> 参数大小 </param>    


        ///   <param   name= "Value "> 参数值 </param>    
        ///   <returns> 新的   parameter   对象 </returns>    
        public   SqlParameter   MakeInParam(string   ParamName,   SqlDbType   DbType,   int   Size,   object   Value)
        {
                return   MakeParam(ParamName,   DbType,   Size,   ParameterDirection.Input,   Value);
        }

        /**/
        ///   <summary>    
        ///   传入返回值参数    
        ///   </summary>    
        ///   <param   name= "ParamName "> 存储过程名称 </param>    
        ///   <param   name= "DbType "> 参数类型 </param>    
        ///   <param   name= "Size "> 参数大小 </param>    
        ///   <returns> 新的   parameter   对象 </returns>    
        public   SqlParameter   MakeOutParam(string   ParamName,   SqlDbType   DbType,   int   Size)
        {
                return   MakeParam(ParamName,   DbType,   Size,   ParameterDirection.Output,   null);
        }

        /**/
        ///   <summary>    
        ///   传入返回值参数    
        ///   </summary>    
        ///   <param   name= "ParamName "> 存储过程名称 </param>    
        ///   <param   name= "DbType "> 参数类型 </param>    
        ///   <param   name= "Size "> 参数大小 </param>    
        ///   <returns> 新的   parameter   对象 </returns>    
        public   SqlParameter   MakeReturnParam(string   ParamName,   SqlDbType   DbType,   int   Size)
        {
                return   MakeParam(ParamName,   DbType,   Size,   ParameterDirection.ReturnValue,   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   SqlParameter   MakeParam(string   ParamName,   SqlDbType   DbType,   Int32   Size,   ParameterDirection   Direction,   object   Value)
        {
                SqlParameter   param;

                if   (Size   >   0)
                        param   =   new   SqlParameter(ParamName,   DbType,   Size);
                else
                        param   =   new   SqlParameter(ParamName,   DbType);

                param.Direction   =   Direction;
                if   (!(Direction   ==   ParameterDirection.Output   &&   Value   ==   null))
                        param.Value   =   Value;

                return   param;
        }
}    
       


[解决办法]
收藏
[解决办法]
看了 头晕 精简点吧
[解决办法]
好乱,没用的删了吧

热点排行