ADO.NET的主要组件

作者:无名    it人知识库   2020-09-15 00:00:00

ADO.NET提供了用于访问和操作数据的两个主要组件是 .NET Framework 数据提供程序和 DataSet。

一、 .NET Framework 数据提供程序

.NET Framework 数据提供程序包含用于访问各种数据源的数据对象,是专门为数据处理以及快速、只进、只读访问数据而设计的组件。使用这些数据处理程序可以对数据库中的数据进行检索,查询,更新,修改等操作。目前有4种类型的数据提供程序,具体使用哪种数据提供程序,要根据使用什么数据库来确定。

.NET Framework 数据提供程序如下:

* OLE DB .NET Framework 数据提供程序。使用System.Data.OleDb命令空间,适合使用OLE DB作为数据源的访问。

* ODBC .NET Framework 数据提供程序。使用System.Data.Odbc命令空间,适合使用ODBC作为数据源的访问。

* SQL Server .NET Framework 数据提供程序。使用System.Data.SQLClient命令空间,适合对SQL Server 7.0版及以上版本数据库访问。

* Oracle .NET Framework 数据提供程序。使用System.Data.OracleClient命令空间,适合对 Oracle 作为数据源的访问。

而每种.NET数据提供程序都包含了以下4种对象。

* Connection对象:提供与数据源的连接。

* DataAdapter对象:提供连接DataSet对象和数据源的桥梁,可执行对数据源的各种操作。

* Command对象:提供对数据库命令的访问,这些命令可用于返回数据、修改数据、运行存储过程、发送或检索参数信息。

* DataReader对象:从数据源中提供高性能的数据流,从数据源中读取只能向前和只读的数据流。

二、数据集(DataSet)

ADO.NET数据集(DataSet)是专门为独立于任何数据源的数据访问而设计的,相当于远程数据库的副本,使用它可以不直接和数据库打交道,可以大批量操作数据,也可将数据绑定到控件上。

DataSet数据集是ADO.NET的断开式结构的核心组件,它在与数据源断开的缓存中存储数据,从而实现了独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,包括XML数据源、远程的或本地的数据库。DataSet包含一个或多个DataTable对象的集合,每个DataTable对象包含DataRow对象、DataColumn对象和Constraint对象,分别存放数据表的行信息、列信息及约束信息。此外DataSet对象还包含DataRelation对象,用于表示表间关系。

下图阐释了 .NET Framework 数据提供程序和 DataSet 之间的关系。

数据提供程序图

ADO.NET结构

在决定应用程序应使用 DataReader还是应使用 DataSet时,应考虑应用程序所需的功能类型。使用 DataSet 可执行以下操作:
◆在应用程序中将数据缓存在本地,以便可以对数据进行处理。如果只需要读取查询结果,则 DataReader 是更好的选择。
◆在层间或从 XML Web 服务对数据进行远程处理。
◆与数据进行动态交互,例如绑定到 Windows 窗体控件或组合并关联来自多个源的数据。
◆对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用。

如果不需要 DataSet 所提供的功能,则可以通过使用 DataReader 以只进、只读方式返回数据,从而提高应用程序的性能。虽然 DataAdapter 使用 DataReader 来填充 DataSet 的内容,但使用 DataReader 可以提升性能,因为这样可以节省 DataSet 所使用的内存,并将省去创建 DataSet 并填充其内容所需的处理。

这篇内容就是由it人知识库 小编为各位整理 原文链接:https://m.itpeo.net/12806/3710234.html

Tag:主要组件



我要分享:

  • 微信
  • QQ好友
  • QQ空间
  • 新浪微博


热门推荐

C++11新特性中的匿名函数Lambda表达式的汇编实现分析(二)

C++11新特性中的匿名函数Lambda表达式的汇编实现分析(二)

C++11新特性中的匿名函数Lambda表达式的汇编实现分析(一) 首先,让我们来看看以&方式进行变量... ...

C++11新特性中的匿名函数Lambda表达式的汇编实现分析(三)

C++11新特性中的匿名函数Lambda表达式的汇编实现分析(三)

C++11新特性中的匿名函数Lambda表达式的汇编实现分析(一) C++11新特性中的匿名函数Lambda表... ...

[zt]Ajax 和 XML: 五种常见 Ajax 模式

[zt]Ajax 和 XML: 五种常见 Ajax 模式

可立即使用这些非常有用的 Ajax 设计模式 ... ...

MDA:Jean网站上的定义和资源

MDA:Jean网站上的定义和资源

继续纠缠MDA的定义 转自 http://www.sciences.univ-nantes.fr/info/lrsg... ...

Spring Framework 4.0M1 & 3.2.3 发布了[翻译]

Spring Framework 4.0M1 & 3.2.3 发布了[翻译]

今天早上去SpringSource官网,发现Spring Framework 4.0发布了,我认为最重要的两个特性... ...

简单说一下Jfinal Model静态dao对象误用的问题

简单说一下Jfinal Model静态dao对象误用的问题

   最近有很多jfinal的使用者在误用model静态dao,这里简单的说一下这个问题, @... ...

职业生涯第二年回顾(2011.2~2012.2)

职业生涯第二年回顾(2011.2~2012.2)

 算不上什么工作总结和技术总结,只是大致回顾这1年记忆中的事情。    一... ...

使用import简化spring的配置文件 (转载)

使用import简化spring的配置文件 (转载)

Spring中用import导入配置文件 原文地址:使用import简化spring的配置文件 (转载)作者:瓦砾... ...

每天十分钟,十二天入门Python(十)

每天十分钟,十二天入门Python(十)

# __str__() class Dog(object):     de... ...

JQuery:deferred对象的方法

JQuery:deferred对象的方法

(1) $.Deferred() 生成一个deferred对象。 (2) deferred.done() 指... ...

Maven的安装及与eclipse或MyEclipse的关联

Maven的安装及与eclipse或MyEclipse的关联

apache-Maven的下载就不说了,其安装与JDK的安装几乎类似。当然使用Maven的前提是已经安装好了JD... ...

怎么在HiWork中注册团队及添加成员

怎么在HiWork中注册团队及添加成员

周三,天气较热,各位注意身体,多饮水。 使用HiWork,首先要进行团队创建以及成员添加,这样才能愉快地... ...

linux wineQQ与win7QQ共用聊天记录

linux wineQQ与win7QQ共用聊天记录

首先挂载win7硬盘,挂载方法就不介绍了。 然后点开QQ的设置  -> 文件管理 -&g... ...

Clustrix Sierra关系数据库集群

Clustrix Sierra关系数据库集群

Clustrix的Sierra数据库集群引擎是一个share-nothing架构的可伸缩关系数据库集群。官... ...

Android圆了Linux桌面之梦

Android圆了Linux桌面之梦

Google开源主管Chris DiBona在采访中称,Android圆了Linux桌面之梦。 DiBona表示,... ...

系统管理构架

系统管理构架

1. 登录系统(VPN+ssh)。 为了保护系统,登录系统应该有审计,有记录。并且,普通用户只不能在登录... ...

swing 消息框 joptionpane

swing 消息框 joptionpane

4.消息弹出窗口 import javax.swing.JFrame; import javax.sw... ...

swing 消息框 joptionpane

swing 消息框 joptionpane

1.使用JOptionPane提示用户确认 import javax.swing.JOptionPan... ...

Quartz之SimpleTrigger

Quartz之SimpleTrigger

SimpleTrigger: 它只能用于指定任务在一个特定时间内运行,可指定任务的重复(时间,次数)与间隔(时间,次数)... ...

人力资源主管的素质要求

人力资源主管的素质要求

作者:佚名 现代企业的人力资源管理的总趋势是以人为本,本着认识人、尊重人、开发人、激励人的观念,把人看成是一种... ...

最新IT资讯

必填

◎已有 0 人评论


电脑版

版权所有:IT人知识库 m.itpeo.net

返回顶部

本网站部分内容来自互联网,版权归原作者所有,文章内容仅代表原作者个人观点,如有侵权请联系我们删除