现在的位置: 首页 > 综合 > 正文

数据访问层设计(1)

2013年09月04日 ⁄ 综合 ⁄ 共 4091字 ⁄ 字号 评论关闭

 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
 }
}

抱歉!评论已关闭.