达梦NET数据访问技术介绍

上传人:m**** 文档编号:170740169 上传时间:2022-11-22 格式:DOCX 页数:5 大小:35.86KB
收藏 版权申诉 举报 下载
达梦NET数据访问技术介绍_第1页
第1页 / 共5页
达梦NET数据访问技术介绍_第2页
第2页 / 共5页
达梦NET数据访问技术介绍_第3页
第3页 / 共5页
资源描述:

《达梦NET数据访问技术介绍》由会员分享,可在线阅读,更多相关《达梦NET数据访问技术介绍(5页珍藏版)》请在装配图网上搜索。

1、达梦.NET数据访问技术介绍摘要:在.NET环境下达梦数据库提供了针对本身进行优化的数据库访问接口,本文通过该接口的背景 介绍、设计实现和编程应用等方面来介绍达梦.NET数据访问接口。为用户在.NET环境下,编程实现访问 达梦数据库提供一定的指导和帮助。1. 背景介绍.NET的数据访问接口是通过ADO.NET类库来实现的。在ADO.NET类库中,微软提供了两套方法: System.Data.OleDb和System.Data.SQLCIien。其中OleDb是微软推出来想取代ODBC的新一代标准, 所以通过System.Data.OleDb能够连接所有提供了 OleDb接口的数据库;而SQLC

2、Iient则是微软专门为 自己的MSSQL数据进行优化后的连接,所以前者基本适用于任何数据库,而后者只适用于MSSQL数据 库,并且后者的性能要比前者好得多。同样,达梦数据库不但提供了 ODBC、OleDb和JDBC等数据库接口,同时也提供了.NET Framework 环境下针对达梦数据库进行了相关优化后的数据库服务的编程接口。该接口在数据源和代码之间创建了一 个最小层,以便在不以功能为代价的前提下提高性能。本文就主要介绍达梦数据库的.NET环境下的数据库 访问接口: DMClient。2. 达梦.NET数据访问接口设计实现设计策略(1) 模块划分提供的用户接口按功能划分为:连接模块: Dm

3、Connection语句执行模块: DmCommand、 DmParameter、 DmParameterCollection结果集访问模块: DmDataReader数据适配模块: DmDataAdapter 事务处理模块: DmTransaction(2) 将各个不同的功能以封装的形式封装在一个功能类中,提供用户调用接口,从而使得底层支持和上层 应用分开。(3) 以面向对象的方法来编写类,通过抽象、封装、继承等方法使得组件有更好的复用性。(4) 为了使得代码能够被重用,每个过程只使用其自身的输入参数和/或对其他全局可见过程的调用完成其 工作,而且不应该使用任何非局部变量。同时通过编写接口而

4、不是编写类来实现,选择耦合性较小的输入 参数接口类型。2.2 设计实现该接口包括 DmConnection、 DmCommand、 DmDataAdapter、 DmDataReader、 DmParameter、 DmParameterCollection 和 DmTransaction。图1表明了各模块之间的关系。用户在与服务器连接的基础上,通过向服务器发送 SQL 语句命令,由 DmCommand 、DmParameter 和 DmParameterCollection 模块提供语句执行功能。用户可以通过 DmDataReader 模块对结果集进行只读 且只进的访问,也可以通过DmDat

5、aAdapter模块将结果集本地化到DataSet中和更新数据源。2.3 各模块功能及依赖关系(1) DmConnection 用于创建应用程序和服务器之间的连接,该功能依赖于 DmConnInstance、 DmConnInstancePool 和 DmConnProperty 模块。其中 DmConnInstance 用来表示一个连接实例, DmConnlnstancePool用于支持连接池,DmConnProperty记录一个连接的所有属性。(2) DmCommand用于提供语句执行功能,该功能依靠DmParameter和DmParameterCollection可以 设置带参数的 SQ

6、L 命令。语句的执行是基于连接的,必须指定命令所对应的连接。(3) DmDataReader 依赖于 DmCommand 的执行结果,提供对结果集只读且只进的访问功能,还可以访 问每一行中的列值。(4) DmDataAdapter提供数据适配功能,把结果集填充到DataSet中并可以对数据源进行解析更新。该 功能依赖于 DmCommand 对语句的执行结果。2.4 功能实现DM .net provider 核心类包括四个,分别为 DmConnection、DmDataReader、DmCommand 和 DmDataAdapter。其中:DmConnection 提供用户连接到服务器功能,允许

7、用户提供主机名、用户名、密码和端口等连接信息 进行连接;DmCommand为用户提供执行SQL语句和命令的功能;DmDataReader提供用户结果集访问 功能,允许用户访问多结果集,读取结果集记录。从数据源中读取只读且只进数据流; DmDataAdapter 提 供用户将结果集填充到DataSet中的能力,并解析更新。DM .net provider 的扩充类包括 DmTransaction、DmParameter 和 DmParameterCollection。其中: DmTransaction为用户提供控制数据库事务的能力;DmParameter和DmParameterCollectio

8、n为用户提供 定义命令和存储过程的输入、输出和返回参数的功能。3. 编程应用3.1 编程环境要求在VISUAL STUDIO .NET 2003, FRAMEWORK 1.1以上的版本。正确安装DM数据库,并将 dmprovider.dll拷贝到C:WINDOWSSystem32下,并在项目中引用该dll并声明命名空间Dm。3.2 获取连接通过 DmConnection 类来连接达梦数据库服务器。public void getConnection()DmConnection cnn = new DmConnection();cnn.ConnectionString =server=localh

9、ost;User ID=SYSDBA;PWD=SYSDBA;Database=SYSTEM;port=12345; trycnn.Open();catch(Exception ex) Console.WriteLine(ex.Message);cnn.Close();3.3执行SQL语句成功连接了达梦数据库服务器后,通过DmCommand类来提交SQL语句,对数据库服务器进行增、 删、改、查等操作。public void ExecSQL()DmCommand command = new DmCommand();command.Connection = cnn;try command.Comma

10、ndText = create table test(c1 int, c2 varchar(20); command.ExecuteNonQuery();command.CommandText = insert into test values(1, hi); command.ExecuteNonQuery();command.CommandText = update test set c2=hello world! where c1=1; command.ExecuteNonQuery();command.CommandText = delete from test where c1=1;

11、command.ExecuteNonQuery();catch(Exception ex)Console.WriteLine(发生未预期的错误导致测试失败:+ex.Message,2); 3.4执行带参数的SQL语句需要使用DmParameter类进行支持public void ExecSQLWithParam(int param1, string param2) DmConnection cnn = new DmConnection();DmCommand command = new DmCommand();try command.Connection = cnn; command.Comm

12、andText = create table test_1 (c1 int, c2 varchar(20); command.ExecuteNonQuery();command.CommandText = insert into test_1(c1,c2) values(?,DmParameter dp2 = new DmParameter(para2, Dm.DmDbType.VarChar,10);DmParameter dp1 = new DmParameter(para1, Dm.DmDbType.lnt32, 10);dp1.Value = param1;dp2.Value = pa

13、ram2;command.Parameters.Add(dp1);command.Parameters.Add(dp2);command.ExecuteNonQuery();catch(Exception ex)Console.WriteLine(ex.Message);3.5读取结果集读取返回的结果集,需要通过DmDataReader类来实现public void getResultSet()DmCommand command = new DmCommand();trycommand.Connection = cnn;command.CommandText = select * from s

14、ystem.sysdba.systables;DmDataReader reader = command.ExecuteReader();while(reader.Read()Console.WriteLine (结果集为:+readeri);catch(Exception ex)Console.WriteLine(捕获未预期异常:+ex.ToString(),2);3.6事务的支持DmTransaction类是专门用来支持事务处理的。public void TestTransaction(string args)DmCommand command = cnn.CreateCommand();

15、DmTransaction dt;dt = cnn.BeginTransaction();command.Connection = cnn;command.Transaction = dt;trycommand.CommandText = insert into t1_Dmcntransaction(c1,c2) values(1,aaa); command.ExecuteNonQuery();command.CommandText = insert into t1_Dmcntransaction(c1,c2) values(2,bbb);command.ExecuteNonQuery();command.CommandText = insert into t1_Dmcntransaction(c1,c2) values(3,ccc);command.ExecuteNonQuery();dt.Commit();catch(Exception ex)dt.Rollback();Console.WriteLine(ex.Message,2);以上都是DM .NET PROVIDER的一些基本应用。并且DM .NET PROVIDER在设计时严格按照MSDN2003 来实现,所以用户在具体应用时,也可以参考 MSDN。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!