探秘ADO.NET 应用程序种种新特性
创始人
2024-06-17 16:41:47
0

对于现在使用ADO.NET 应用程序说明,这里只提及了ADO.NET 应用程序的相关使用,但这些提及的内容都明确表明了 ADO 批处理更新实现和 ADO.NET 批处理更新实现之间的一个重要区别。

ADO.NET 应用程序和基础数据源之间的交互基于一个具有双向信道的双体系结构。您可以使用各个特定于提供程序的命令或批处理更新过程来访问数据源,以读取和写入行。在这两种情况下,数据访问都会产生完全双向绑定,并涉及各种不同的对象和方法。

您可以使用如 SqlCommand 和 OleDbCommand 等命令类来执行单个命令。可使用数据适配器对象来下载断开连接的数据,提交更新的行集。虽然 “数据集” 是数据适配器用于返回和提交记录块的容器对象,但各个命令通过数据读取器对象返回数据。

更新是通过各个命令、存储过程完成的,通常,托管提供程序理解的任何命令文本一般都被称为更新。ADO.NET 应用程序更新命令总是执行嵌入在语句正文中的新数据。更新命令总是需要一个打开的连接,可能还需要一个正在进行的事务处理或一个新的事务处理。

批处理更新则是一个略有不同的方法分支。从最高的抽象级别来看,您并不发出命令,无论它可能有多么复杂。取而代之的是,您提交在客户端修改的当前行的快照,并等待数据源批准。批处理更新背后的关键概念是数据断开连接的概念。

您下载行表,通常为数据集,根据需要在客户端对它进行修改,然后将这些行的新映像提交到数据库服务器。ADO.NET 应用程序您所作的是提交更改,而不是执行一个对数据源创建更改的命令。这就是更新(我在 July column 一文中讨论过这个问题)和批处理更新之间的本质区别。


在进一步详细讨论 ADO.NET 应用程序 批处理更新之前,我需要阐明常常会导致某种误解的批处理更新模型的一个方面。虽然更新和批处理更新在 ADO.NET 内的实际实现方面有着本质的区别,但它们遵循的是同一个更新模型。更新和批处理更新都是通过直接的并且特定于提供程序的语句来完成的。当然,由于批处理更新通常涉及到更多的行,所以这些语句会被组合为一个批处理调用。#t#

批处理更新会对目标数据集的行进行从头到尾的循环,只要发现更新的行,ADO.NET 应用程序就会发出适当的更新命令(INSERT、DELETE 或 UPDATE)。对更新的行进行通信时,将运行一个预定义的直接 SQL 命令。从本质上来说,这就是批处理更新。

这个过程是理所当然的。实际上,如果批处理更新使用完全不同的更新模型,就需要来自数据源的特殊支持。(这正是向 SQL Server 2000 提交 XML updategram 时发生的情况。)批处理更新只是一个用来简化多个行更新提交的客户端提供的软件机制。在任何情况下,ADO.NET 应用程序每个新行提交总是通过数据源直接命令的正常通道完成的。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...