数据访问层设计(1)

    技术2022-05-11  101

     1设计接口

    1)IDAOBuilder数据访问对象创建接口

    using System;using System.Data;using HKH.DataBase.Type;

    namespace HKH.DataBase.Interface{ /// <summary> /// DataAccessObjectBuilder 创建者接口 /// </summary> /// <remarks> ///  Create By Liwt on 2006 - 06 - 16 /// </remarks> public interface IDAOBuilder {  #region 方法

      /// <summary>  /// 返回一个IDbConnection对象,在DF层启用连接和事务使用  /// </summary>  /// <returns>IDbConnection对象</returns>  IDbConnection GetConnection ( );  /// <summary>  /// 返回一个IDbCommand对象  /// </summary>  /// <param name="strSql">查询语句,该值为空时,根据ds构造标准Command</param>  /// <returns>IDbCommand对象</returns>  IDbCommand GetCommand ( string strSql ) ;

      /// <summary>  /// 返回一个IDbCommand对象,执行存储过程使用  /// </summary>  /// <param name="sprocName">存储过程名称</param>  /// <param name="parameters">存储过程参数</param>  /// <returns>IDbCommand对象</returns>  IDbCommand GetSprocCommand ( string sprocName,ProcParameter[] parameters ) ;

      /// <summary>  /// 返回一个完整的IDbDataAdapter对象,和数据库发生插入、删除、更新时使用  /// </summary>  /// <returns>IDbDataAdapter对象</returns>  IDbDataAdapter GetDataAdapter ( ) ;

      /// <summary>  /// 返回一个IDbDataAdapter对象,查询时使用,只含有一个SelectCommand对象  /// </summary>  /// <returns>IDbDataAdapter对象</returns>  IDbDataAdapter GetQueryDataAdapter ( ) ;

      #endregion }}

    2)IDBAccess 数据访问数据库操作接口

    using System;using System.Collections;using System.Data;using HKH.DataBase.Type;

    namespace HKH.DataBase.Interface{ /// <summary> /// 数据访问接口 /// </summary> /// <remarks> ///  Create By Liwt on 2006 - 06 - 16 /// </remarks> public interface IDBAccess {  #region 方法

      /// <summary>  /// 对通用的一个DataSet执行Insert的操作  /// </summary>  /// <param name="dsInsert">进行操作的DataSet</param>  /// <param name="strTableName">TableName</param>  /// <param name="iReturnKeyID">返回的增长主键</param>  /// <returns>返回0表示成功,返回-1表示失败</returns>  int Insert ( DataSet dsInsert,string strTableName,out int iReturnKeyID ) ;

      /// <summary>  /// 对通用的一个DataSet执行物理删除的操作。  /// </summary>  /// <param name="dsDelete">将要操作的DataSet</param>  /// <param name="strTableName">Table名称</param>  /// <returns>返回0表示成功,返回-1表示失败</returns>  int Delete ( DataSet dsDelete,string strTableName ) ;

      /// <summary>  /// 设置删除记录的标志  /// </summary>  /// <param name="dsDelete">进行操作的DataSet</param>  /// <param name="strTableName">Table名称</param>  /// <returns>返回0表示成功,返回-1表示失败</returns>  int DeleteFlag ( DataSet dsDelete,string strTableName ) ;

      /// <summary>  /// 更新DataSet对应的数据。  /// </summary>  /// <param name="dsUpdate">进行操作的DataSet</param>  /// <param name="strTableName">Table名称</param>  /// <returns>返回0表示成功,返回-1表示失败</returns>  int Update ( DataSet dsUpdate,string strTableName ) ;

      /// <summary>  /// 执行存储过程  /// </summary>  /// <param name="sprocName">存储过程名称</param>  /// <param name="parameters">存储过程参数</param>  /// <returns>返回0表示成功,返回-1表示失败</returns>  int ExecuteProcedure ( string sprocName, ProcParameter[] parameters );

      /// <summary>  /// 执行存储过程  /// </summary>  /// <param name="sprocName">存储过程名称</param>  /// <param name="parameters">存储过程参数</param>  /// <param name="dataset">执行的DataSet</param>  /// <param name="strTableName">数据表名称</param>  /// <returns>返回0表示成功,返回-1表示失败</returns>  int ExecuteProcedure ( string sprocName,ProcParameter[] parameters,DataSet dataset,string strTableName );

      /// <summary>  /// 执行存储过程  /// </summary>  /// <param name="sprocName">存储过程名称</param>  /// <param name="parameters">存储过程参数</param>  /// <param name="dr">执行的SqlDataReader</param>  /// <param name="TableName">数据表名称</param>  /// <returns>0:成功</returns>  /// <returns>!0:失败</returns>  int ExecuteProcedure(string sprocName,ProcParameter[] parameters, IDataReader dr);

      /// <summary>  /// 执行查询语句  /// </summary>  /// <param name="strSql">要执行的SQL语句</param>  /// <param name="dsSelect">要填充的DataSet,以引用方式传入</param>  /// <param name="strTableName">要填充的表名</param>  /// <returns></returns>  bool Fill(string strSql,DataSet dsSelect,string strTableName);

      /// <summary>  /// 执行单值查询  /// </summary>  /// <param name="strSql">要执行的Sql语句</param>  /// <returns>失败返回null</returns>  object ExecuteScalar(string strSql);

      /// <summary>  /// 执行DataReader  /// </summary>  /// <param name="strSql">要执行的Sql语句</param>  /// <returns>失败返回null</returns>  IDataReader ExecuteReader(string strSql);

      /// <summary>  /// 执行SQL语句  /// </summary>  /// <param name="strSql">要执行的Sql语句</param>  /// <returns>失败返回-1</returns>  int ExecuteNonQuery(string strSql);

      #endregion }}


    最新回复(0)