《c#下各种数据库操作的封装》由会员分享,可在线阅读,更多相关《c#下各种数据库操作的封装(16页珍藏版)》请在金锄头文库上搜索。
1、c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(一)收藏首先定义数据库操作的标准接口IDBAccess,定义接口的基本功能;通过基本的接口设置,完成数据访问的统一抽象。publicinterfaceIDBAccess.voidInit(stringstrServer,stringstrDataBase,stringstrUser,stringstrPwd);voidOpen();voidClose();boolTestConn();intRunNoQuery(stringstrCmd);DataTableRunQuery(stringst
2、rCmd);DBTypeDBType.get;intGetFiledMax(stringstrTable,stringstrField);DataTableTables.get;DataTableGetColumns();DataTableGetColumns(stringstrTable);c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(二)收藏使用静态工厂模式,通过传入枚举型参数,动态创建访问实例实现模式上采用基本实现接口,派生类继承基类的虚函数,从而实现代码的耦合较低,有很好的扩展性。publicenumDBType.Access,
3、SQL,DB2,Oracle,MySQLpublicstaticclassDBAccessFactory.publicstaticIDBAccessCreate(DBTypetype).IDBAccessIRet=null;switch(type).caseDBType.Access:IRet=newAccess(type);break;caseDBType.SQL:IRet=newSQL(type);break;default:break;returnIRet;privateabstractclassDBAccess:IDBAccess.protectedDbConnectionm_oCon
4、n=null;protectedconststringCON_strServer=Server;protectedconststringCON_strDataBase=DataSource;protectedconststringCON_strUser=UID;protectedconststringCON_strPwd=PWD;protectedconststringCON_strConnTimeOut=ConnectTimeout=2;privateDBTypem_eDBType=DBType.Access;protectedDBAccess(DBTypetype).this.m_eDBT
5、ype=type;publicDBTypeDBType.get.returnthis.m_eDBType;publicvoidInit(stringstrServer,stringstrDataBase,stringstrUser,stringstrPwd).this.InitConn(strServer,strDataBase,strUser,strPwd);publicvoidOpen().if(this.m_oConn!=null).this.m_oConn.Open();publicintRunNoQuery(stringstrCmd).intiRet=0;try.DbCommando
6、Cmd=this.GetCmd(strCmd);if(oCmd!=null).iRet=oCmd.ExecuteNonQuery();catch(Exceptionex).throw(newException(ex.Message);returniRet;publicintGetFiledMax(stringstrTable,stringstrField).intiRet=-1;DataTabledt=this.RunQuery(SelectMax(+strField+)From+strTable);if(dt!=null&dt.Rows.Count=1).iRet=dt.Rows00isDB
7、Null?0:Convert.ToInt32(dt.Rows00);returniRet;publicDataTableRunQuery(stringstrCmd).DataTabledt=newDataTable();DbDataAdapteradp=this.DbAdp;adp.SelectCommand=this.GetCmd(strCmd);adp.Fill(dt);returndt;publicvoidClose().if(this.m_oConn!=null&this.m_oConn.State=System.Data.ConnectionState.Open).this.m_oC
8、onn.Close();publicboolTestConn().boolbRet=true;try.if(this.m_oConn.State!=System.Data.ConnectionState.Open).this.m_oConn.Open();bRet=this.m_oConn.State=System.Data.ConnectionState.Open;catch.bRet=false;this.Close();returnbRet;publicabstractDataTableTables.get;publicabstractDataTableGetColumns();publicabstractDataTableGetColumns(stringstrTable);protectedabstractvoidInitConn(stringstrServer,stringstrDataBase,stringstrUser,stringstrPwd);protectedabstr