使用设计模式构建通用数据库访问类(3) public OleDBOperator(string strConnection) { this.conn= new OleDbConnection(strConnection); } public override IDbConnection Connection { get{return this.conn;} } public override void Open() { if(conn.State.ToString().ToUpper()!="OPEN") this.conn.Open(); } public override void Close() { if (conn.State.ToString().ToUpper()=="OPEN") this.conn.Close(); } public override void BeginTrans() { trans=conn.BeginTransaction() ; inTransaction=true; } public override void CommitTrans() { trans.Commit(); inTransaction=false; } public override void RollbackTrans() { trans.Rollback(); inTransaction=false; } public override void exeSql(string strSql,string[] strParams,object[] strValues) { OleDbCommand cmd=new OleDbCommand(); cmd.Connection=this.conn ; if(inTransaction) cmd.Transaction=trans; if((strParams!=null)&&(strParams.Length!=strValues.Length) ) throw new ParamValueNotMatchException("查询参数和值不对应!"); cmd.CommandText=this.ChangeQueryString(strSql); if(strParams!=null) { for(int i=0;i cmd.Parameters.Add(strParams[i],strValues[i]); } cmd.ExecuteNonQuery(); } public override DataSet exeSqlForDataSet(string QueryString) { OleDbCommand cmd=new OleDbCommand(); cmd.Connection=this.conn ; if(inTransaction) cmd.Transaction=trans; DataSet ds = new DataSet(); OleDbDataAdapter ad = new OleDbDataAdapter(); cmd.CommandText=QueryString; ad.SelectCommand =cmd; ad.Fill(ds); return ds; } }