第5节 数据库访问技术.pdf

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 ADO.NET数据库访问技术(上) 5.1 ADO.NET 概述 在.NET 中数据库的访问是通过 ADO.NET 完成的。ADO.NET 是微软公司 ADO (Active Data Object )技术的升级版本。为了保持对 ADO 技术的兼容性,ADO.NET 不但 能够访问那些使用新的 .NET 数据提供程序的数据源,也可访问那些现有的 ADO OLEDB 数据提供程序。 以前 ADO 操作主要依赖于两层结构并且是基于连接的,连接断开后就只能通过重建 连接才能实现存取,而在 ADO.NET 中,数据处理被延伸到三层以上的结构,程序员也需 要采用无连接应用模型。通过支持对数据的松耦合访问,ADO.NET 减少了与数据库的活动 连接数目(即减少了多个用户争用数据库服务器上的有限资源的可能性),从而实现了最大 限度的数据共享。下面介绍 ADO.NET 的主要特点。 ADO.NET 是一个类的集合,包括了连接对象、命令对象、数据适配器和数据集等。对 各种不同类型的数据库,都以统一的方式管理和访问数据源中的数据。其访问数据源的工作 如图 5-1 所示。 图 5-1 .NET数据访问示意 应用程序通过连接对象与服务器上的数据源建立连接(不同类型的数据库使用各自的连 接提供程序) ,命令对象发出 SQL 命令从数据源中获取数据,数据集对象用来保存所查询 到的数据记录,数据适配器用于在数据源和数据集之间交换数据。当数据传输到客户端后, ADO.NET 可以断开与数据源和数据集之间的连接,让应用程序离线工作。如果应用程序改 变了数据集的内容,通过重新连接来提交变化,数据适配器从数据集中将已更改的数据写会 数据库。ADO.NET 也允许应用程序使用命令对象直接对数据源进行修改。 5.1.1 ADO.NET 的特点 (1) ADO.NET 不依赖于连续的活动连接 在传统的客户端/服务器应用程序中,组件将建立与数据库的连接,并在应用程序运作 过程中使连接保持打开状态。该方法在许多应用程序中并不实用,打开数据库连接将占用宝 贵的系统资源。 使用 ADO.NET 进行数据访问,是以有节制地使用连接的结构为中心进行设计的。应 用程序连接到数据库的时间仅足够获取或更新数据,因为数据库并未被大部分时间空闲的连 接占用,所以它可以为更多的用户提供服务。 (2) 使用数据命令执行数据库交互 若要在数据库中执行操作,应执行 SQL 语句或存储过程(它包括 SQL 语句)。在 ADO.NET 中使用数据命令封装了 SQL 语句或存储过程。在进行数据库交互时,一般按以 下顺序操作: ① 打开一个连接; ② 执行该命令引用的 SQL 语句或存储过程; ③ 关闭连接。 连接保持打开的时间仅足够执行语句或存储过程。 (3) 使用数据集缓存数据 虽然使用数据命令可以进行几乎全部数据库的操作,但在处理 Windows 窗体应用程序 时,我们需要执行的最常见数据认为是从数据库检索数据并对数据进行某些操作:显示数据、 处理数据或将数据发送给另一个组件。一般情况下,应用程序要处理不止一条记录,而是一 组记录。 获取记录后,应用程序通常将它们成组使用。在许多情况下,每次应用程序需要处理下 一条记录时都返回到数据库是不切实际的,因此解决方案就临时存储从数据库检索的记录, 然后使用该临时集。这便是数据集的概念。数据集是从数据源检索的记录的缓存。数据集是 数据的被动容器,这点很重要。若要实际从数据库获取数据和将数据写回(可选)数据库, 可使用适配器。数据适配器包含一个或多个数据命令,这些命令用于填充数据集中的单个表 并更新数据库中的相应表(数据适配器主要包含四条命令,分别用于选择、插入、更新和删 除数据库中的记录) 。 (4) 数据集独立于数据源 尽管数据集可作为从数据库获取的数据的缓存,但数据集与数据库之间没有任何实际关 系。数据集是容器,它由从数据适配器执行的 SQL 命令或存储过程填充。 由于数据集不直接绑定到数据源,所以它可以是来自多个源的数据的集成点。例如,数 据集内的某些数据可能

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档