public abstract class DBOperator
{
public abstract IDbConnection Connection{get;} //得到数据库连接
public abstract void Open(); //打开数据库连接
public abstract void Close(); //关闭数据库连接
public abstract void BeginTrans(); //开始一个事务
public abstract void CommitTrans(); //提交一个事务
public abstract void RollbackTrans(); //回滚一个事务
public abstract void exeSql(string strSql,string[] strParams,object[] objValues);
//执行Sql语句,没有返回值
public abstract DataSet exeSqlForDataSet(string QueryString);//执行Sql,返回DataSet
}
然后,我们分别为Sql Server和OleDb数据库编写两个数据访问的具体实现类:
Sql Server的数据库访问类:
internal class SqlDBOperator: DBOperator
{
private SqlConnection conn; //数据库连接
private SqlTransaction trans; //事务处理类
private bool inTransaction=false; //指示当前是否正处于事务中
public override IDbConnection Connection
{
get{return this.conn;}
}
public SqlDBOperator(string strConnection)
{
this.conn= new SqlConnection(strConnection);
}
public override void Open()
{
if(conn.State.ToString().ToUpper()!="OPEN")