|
| |
精品推荐 |
 |
|
| |
|
|
|
|
使用设计模式构建通用数据库访问类
|
日期:2005年4月25日 作者:清风网络学院 查看:[大字体
中字体 小字体]
|
if((strParams!=null)&&(strParams.Length!=strValues.Length) ) throw new ParamValueNotMatchException("查询参数和值不对应!"); cmd.CommandText=strSql; if(strParams!=null) { for(int i=0;i cmd.Parameters.Add(strParams[i],strValues[i]); } cmd.ExecuteNonQuery(); } public override DataSet exeSqlForDataSet(string QueryString) { SqlCommand cmd=new SqlCommand(); cmd.Connection=this.conn ; if(inTransaction) cmd.Transaction=trans; DataSet ds = new DataSet(); SqlDataAdapter ad = new SqlDataAdapter(); cmd.CommandText=QueryString; ad.SelectCommand =cmd; ad.Fill(ds); return ds; } }
OleDb数据库操作的类同Sql Server数据库操作的类非常相似,只是把相应的Sql类替换成OleDb类。需要注意的是,因为OleDb和Sql Server的参数传递方式不一致,所以,这里需要做一点小小的转换,将"@参数名"类型的参数转换成"?",这个细节希望读者能够注意到。代码如下:
internal class OleDBOperator : DBOperator { private OleDbConnection conn; private OleDbTransaction trans; private bool inTransaction=false; 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)
上一篇:Excel中双击格式刷的妙用
下一篇:40条最让人误会的手机短信
|
| 使用设计模式构建通用数据库访问类 相关文章: |
|
|
|
| 使用设计模式构建通用数据库访问类 相关软件: |
|
|
|
|