有关.NET操作Oracle数据库,目前一般都使用.NET自带的或者ODAC组件,两种方式都需要使用Oracle客户端的OCI.dll组件,最近网络上找到DataDirect组件,支持Anycpu编译,真正做到了无客户端直接操作Oracle数据库
有了这个第三方组件,DevNet就需要增加使用第三方数据库操作组件的功能,本文就DevNet使用第三方数据库连接组件做简单介绍
DevNet的类关系,请参阅
DevNet体系
首先我们继承组件内的DBAccessBase类,然后override几个方法,具体代码见:
折叠展开C# Code复制内容到剪贴板
-
-
-
- public class OracleExtDbDirect : DBAccessBase
这是继承后的类定义
C# Code复制内容到剪贴板
-
-
-
-
- public OracleExtDbDirect(string connectionString)
- : base()
- {
- base.con = new OracleConnection(connectionString);
- }
-
-
-
-
-
- public OracleExtDbDirect(OracleConnection oracleConn)
- : base(oracleConn)
- { }
继承后的构造函数
override几个方法
C# Code复制内容到剪贴板
-
-
-
-
-
- public override System.ComponentModel.Component CreateCommandBuilder(System.Data.Common.DbDataAdapter da)
- {
- return new OracleCommandBuilder((OracleDataAdapter)da);
- }
-
-
-
-
-
-
- public override System.Data.Common.DbDataAdapter CreateDbAdapter(System.Data.Common.DbCommand selectCmd)
- {
- return new OracleDataAdapter((OracleCommand)selectCmd);
- }
-
-
-
-
-
-
-
- public override void AddCmdParamWithValue(System.Data.Common.DbCommand cmd, string paramName, object paramValue)
- {
- ((OracleCommand)cmd).Parameters.AddWithValue(paramName, paramValue);
- }
这就是该类所有代码,通过以上类已基本实现了使用第三方组件的功能,使用该类的方法如下:
我们有一个DALEMP数据操作类,那么在该类的构造函数中添加如下代码:
C# Code复制内容到剪贴板
-
-
-
- public class DALEMP : DataManager<EMP, SearchEMP>
- {
-
- public DALEMP()
- {
- base.DBCon = new DBConnect();
- base.DBCon.DBAccessBase = new OracleExtDbDirect(base.DBCon.ConnectionString);
- //参数前缀,sql里为@,Oracle正常为:Mysql里为?,这里设置为?
- base.DBCon.Flag = "?";
- }
- }
ok,则该类的所有方法都实现了使用第三方数据操作组件的功能,appsettings的数据连接配置方式不变,Provider设置为oracleext或none,连接字符串修改为你自己的即可,
你可以在项目中在抽象出来DataManager的子类,DALEMP再继承子类,则修改数据连接则只用修改继承的子类,这样该项目所有的数据连接就都实现了使用第三方组件的功能