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