ADO.NET操作不是ADO为适应.NET基础构造而进行改进的版本.当你慢慢了解了ADO.NET操作的语法,代码设计以及移植后,你就会清楚了,数据集使这项工作很难完成。你们支持这一点吗?
应用程序运行跨多个资源结合不同操作(例如,将定单插入 SQL Server 数据库、将消息写入 Microsoft 消息队列 (MSMQ) 队列、发送电子邮件以及从 Oracle 数据库检索数据)的事务。
通过提供基于声明性事务的编程模型,COM+ 使应用程序可以很容易地运行跨不同种类的资源的事务。这种做法的缺点是,由于存在 DTC 和 COM 互操作性开销,导致性能降低,而且不支持嵌套事务。#t#
ASP.NET 页、Web Service 方法和 .NET 类通过设置声明性事务属性都可以标记为事务性,要参与自动事务,.ADO.NET操作必须是从 System.EnterpriseServices.ServicedComponent 类继承的,这可使得该 .NET 类能够在 COM+ 内运行。
在这个过程中,要将 COM+ 与 DTC 进行交互以创建一个分布式事务,ADO.NET操作也要登记后台的所有资源连接。您还需要对该类设置声明性事务属性以确定其事务性行为。 类的事务属性可以设置为以下任何选项: “禁用” — 指示该对象从不在 COM+ 事务中创建。该对象可以直接使用 DTC 来获得事务性支持。
NotSupported— 指示该对象从不在事务中创建。 “支持”— 指示该对象在其创建者的事务的上下文中运行。如果该对象本身是根对象,或者其创建者不在事务中运行,则该对象将在不使用事务的情况下创建。
“必选”— 指示该对象在其创建者的事务的上下文中运行。如果该对象本身是根对象,或者其创建者不在事务中运行,则该对象将使用一个新事务来创建。 RequiresNew— 指示该对象需要一个事务,并且该对象使用新事务来创建。
ADO.NET操作能够使DataSet 和 DataReader 将数据从数据源中抽取出来.前者是记录在内存中的缓存,你可以从任意方向访问并随意作出修改. 后者是高度优化的对象,在只读纪录集中以仅向前方式向前移动。注: DataSet 看起来象是静态游标,但实际上,在.NET中,与ADO只读游标相对应的是DataReader 对象.
在ADO.NET操作中,虽然对于服务器端的游标不提供任何支持,但这不意味着你就不能使用游标.实际上,你所需要做的步骤是在.NET中输入ADO库.你只需在references node上单击右键,就可以在你自己的程序里运行本地ADO 对象.