(转贴)共享一个通用的数据访问类

mac2022-06-30  17

共享一个通用的数据访问类     在WEB项目开发中,免不了常常要写一堆的数据访问的重复代码,呵呵,不过这个在学生时代可能会经常发生.但在实际生产开发环境中,要么用DAAB,要么自己动手写一个.其实很多时候都是用DAAB :),不过有时候还是觉得自己写的用着舒服点,毕竟那个DAAB也太庞大了!代码如下:[在开发的时候可以直接Copy使用]: using  System; using  System.Data; using  System.Data.SqlClient; using  System.Configuration; using  System.ComponentModel; namespace  SQLHelper{     ///   <summary>      ///  Class1 的摘要说明。     ///   </summary>      public   class  SQLHelper    {         //  连接数据源          private  SqlConnection myConnection;         private   readonly   string  RETURNVALUE  =   " RETURNVALUE " ;         ///   <summary>          ///  打开数据库连接.         ///   </summary>          private   void  Open()         {             //  打开数据库连接              if  (myConnection  ==   null )             {                myConnection  =   new  SqlConnection(ConfigurationSettings.AppSettings[ " SQLCONNECTIONSTRING " ].ToString());                            }                             if (myConnection.State  ==  ConnectionState.Closed)            {                    try                 {                     /// 打开数据库连接                     myConnection.Open();                }                 catch (Exception ex)                {                    SystemError.SystemLog(ex.Message);                }                 finally                 {                     /// 关闭已经打开的数据库连接                                 }            }        }         ///   <summary>          ///  关闭数据库连接         ///   </summary>          public   void  Close()         {             /// 判断连接是否已经创建              if (myConnection  !=   null )            {                 /// 判断连接的状态是否打开                  if (myConnection.State  ==  ConnectionState.Open)                {                    myConnection.Close();                }            }        }         ///   <summary>          ///  释放资源         ///   </summary>          public   void  Dispose()         {             //  确认连接是否已经关闭              if  (myConnection  !=   null )             {                myConnection.Dispose();                myConnection  =   null ;            }                        }                 ///   <summary>          ///  执行存储过程         ///   </summary>          ///   <param name="procName"> 存储过程的名称 </param>          ///   <returns> 返回存储过程返回值 </returns>          public   int  RunProc( string  procName)         {            SqlCommand cmd  =  CreateCommand(procName,  null );             try             {                 /// 执行存储过程                 cmd.ExecuteNonQuery();            }             catch (Exception ex)            {                 /// 记录错误日志                 SystemError.SystemLog(ex.Message);            }             /// 关闭数据库的连接             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);             try             {                 /// 执行存储过程                 cmd.ExecuteNonQuery();            }             catch (Exception ex)            {                 /// 记录错误日志                 SystemError.SystemLog(ex.Message);            }             /// 关闭数据库的连接             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)         {             /// 创建Command             SqlCommand cmd  =  CreateCommand(procName,  null );                         /// 读取数据             dataReader  =  cmd.ExecuteReader(CommandBehavior.CloseConnection);                        }         ///   <summary>          ///  执行存储过程         ///   </summary>          ///   <param name="procName"> 存储过程的名称 </param>          ///   <param name="prams"> 存储过程所需参数 </param>          ///   <param name="dataReader"> 存储过程所需参数 </param>          public   void  RunProc( string  procName, SqlParameter[] prams,  out  SqlDataReader dataReader)         {             /// 创建Command             SqlCommand cmd  =  CreateCommand(procName, prams);                         /// 读取数据             dataReader  =  cmd.ExecuteReader(CommandBehavior.CloseConnection);        }                 ///   <summary>          ///  创建一个SqlCommand对象以此来执行存储过程         ///   </summary>          ///   <param name="procName"> 存储过程的名称 </param>          ///   <param name="prams"> 存储过程所需参数 </param>          ///   <returns> 返回SqlCommand对象 </returns>          private  SqlCommand CreateCommand( string  procName, SqlParameter[] prams)         {             /// 打开数据库连接             Open();                         /// 设置Command             SqlCommand cmd  =   new  SqlCommand(procName, myConnection);            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="ParamName"> 存储过程名称 </param>          ///   <param name="DbType"> 参数类型 </param>          ///   <param name="Size"> 参数大小 </param>          ///   <param name="Direction"> 参数方向 </param>          ///   <param name="Value"> 参数值 </param>          ///   <returns> 新的 parameter 对象 </returns>          public  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  SqlParameter CreateInParam( string  ParamName, SqlDbType DbType,  int  Size,  object  Value)         {             /// 创建输入类型的参数              return  CreateParam(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 CreateOutParam( string  ParamName, SqlDbType DbType,  int  Size)         {             /// 创建输出类型的参数              return  CreateParam(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 CreateReturnParam( string  ParamName, SqlDbType DbType,  int  Size)         {             /// 创建返回类型的参数              return  CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue,  null );        }                }}

转载于:https://www.cnblogs.com/Jwin/archive/2006/07/11/447941.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)