关于ADO.NET
正如我以前多次提到, ADO.NET采用断开的架构运作。这样做的理由是传统的应用程序在文持一个开放的数据库连接时不能很好地扩展。如果一个组件打开了一个到数据库的连接并且使它开放到应用程序的整个生命周期,它消耗昂贵的数据库资源,而连接时可能需要的只是一小部分时间。随着用户数量的增长,数据库连接的总开销可能开始对数据库的性能造成不利的影响。因此,微软决定采用无连接结构的ADO.NET。通过减少活动连接的数量这不仅解决了可扩展性的问题,还使得数据从一个部分传输到另一部分更容易。就像你在那一个时刻看到的那样,您不必使所有的组件都连接到数据库,也没有必要使他们都理解一些二进制格式的数据。
此外,微软意识到今天由于网络的许多编程基本上有一个无连接的应用程序体系结构,想想一个典型的Web应用程序:用户请求显示的网页和服务器上产生的页面,以混合的HTML和数据中的数据。当页面发回给用户并在其浏览器中显示时,数据库的连接就不再需要。因此,如果需要一秒使一个网页显示,那么用户浏览它却需要二十九秒,而数据库连接所需的时间只有页面被使用的总时间的三十分之一。如果您仍然需要使用连接架构,Microsoft建议您使用ADO 。 ADO.NET本身就是无连接的,所以如果你需要一个持续连接的底层数据库,ADO技术仍然是一个比较好的方法。
数据集
ADO.NET使用DataSet数据集存储断开的数据资源。这个新的结构类似的ADO记录集,但它有一些重要的区别。例如,一个ADO记录集看起来像一个单一的表,纵使它实际上是来源于多个数据表。最后的记录仅仅是行和列。但是,一个数据集可以在其缓存中存储多个表的数据。您可以定义这些表格之间的关系,然后从单个表或相关联表中读取和检索数据。一个数据集 ,从某种意义上说,就像一个微型的数据库副本,但它通常只包含一个小的数据或数据表的子集。一个数据集对它底层的数据库不需要了解。事实上,多个底层数据库可以组成以数据集的形式的处理数据,这就是为什么一些数据无法来自SQL Server ,而有些数据可以来自Oracle。另一个对象是数据集适配器,持有被认为能链接到底层数据库的信息。这些数据集的适配器有让你检索和更新数据的方法,但这些方法实际上需要您提供适当的SQL语句或存储过程的名字。数据集知道所有与XML有关的。如果你想要使一个数据集的数据从一个组件到另一个,数据通过使用XML来传递 。如果你想要往硬盘上写一个能用于以后检索的数据集,它要以XML的格式存取,ADO.NET使用XML ,因为它是一种标准格式,任何理解XML的用户可以使用该XML数据流,转换成任何想要的格式是必要的。与ADO记录集相比之下,您可以看到它的优势。ADO记录集使用的二进制格式在另一平台是没有意义的。但是,XML是一个基于文本形式的标准的可被任何平台兼容的格式。此外,XML事实上是一些文本因此很容易通过HTTP传输。
注:
其实,ADO允许你用一段时间的XML作为记录集。然而,这都不是默认的格式;相反,您必须调用相关的保存方法和传递的参数来指定XML格式。在ADO.NET中XML是默认的。另一个使用XML作为传输工具的好处是不像ADO的无连接的记录集那样,它从一个组件传输数据集到另一个组件就像传输文本一样简单。一个无连接的记录集,您有的一个二进制文件必须编组跨越进程边界,这是一个昂贵的命题。
ADO.NET对象的使用
在ADO.NET中有一些新的对象是不同于在ADO中开发人员一直在使用的那些对象的。但是有一些与ADO中对象名称相似的对象,却要仔细看了,因为你不能确定某些可能不存在的功能。你已经看到了讨论过的数据集,但是这就像开始讨论ADO的记录集那样,您做的大部分工作,但它的结局就像编码所能执行的那样。因此,使用ADO.NET ,您需要了解如何连接数据库,以及如何执行最后填充的数据集的语句。
连接:oleDbConnection and SQLConnection
oleDbConnection对象使用OLE DB连接一个数据资源,ADO.NET也引入了一种新类型的连接对象:SQL connection对象,SQL connection 的功能类似于oleDbConnection对象,但是它却不使用OLE DB,相反,SQL connection使用一个本地驱动器连接到SQL服务器,并且提供比OLEDB提供程序更好的性能。因为有些人读了这本书可能没有连接到SQL服务器,而将继续使用oleDbConnection对象。
连接到一个数据源是简单的:定义连接字符串,创建的连接对象,并打开连接。
命令:OleDbCommand and SqlCommand
当您调用Open方法,打开一个连接到数据库。现在,您需要创建一个命令来操作运行的数据库。你通过创建OleDbCommand对象(或如果您使用的是SqlConnection 连接对象就用SqlCommand对象)来达到这个目的 。现在您已经建立了一个到数据库的连接,并且您已经创建了一个用来检索记录的命令。但是,正如在ADO中您不能用一个连接或一个命令存储这些记录。相反,你必须有一个可容纳那些记录对象。
DataReader
ADO.NET实际上提供了很多查询方法来访问记录数据集,其中之一是你已经在一定程度上了解的数据集DataSet并且将会进一步了解。这使你可以在内存中以无连接的方式存储数据。
要是你要检索的数据量相当大,而且你不想占用所有的内存空间怎么办?ADO.NET提供了另一个对象,就是所谓的DataReader 。 DataReader就是指:一个数据读取的对象。它一次能读取一个记录的数据,只能读入,而且只读数据流。这样使您一次可读入一个记录,然后移动到下一个继续读入。实际上是在内存中每一次只有一个记录读入,所以这大大降低了内存要求。
数据集DataSet
DataSet是你已经处理了一原文请找腾讯752018766优,文^论~文.网http://www.youerw.com 中的DataTable的方式存储。因此,在ADO中 ,一个记录集顾名思义:是一组记录。在ADO.NET中,将DataSet作为收集的一个或多个数据表,每个数据表可能包含来自底层数据库多个数据表的数据。要创建和填充一个DataSet数据集 ,您首先必须建立一个DataSetAdapter对象,然后设定一个参数回到提供记录OleDbCommand或SqlCommand。
XML集成
如你所知道的, XML是目前比较关注的“大的事情”。 即使他们现在用的不是很多,大家却都在谈论的XML。 XML的背后的思想是提供一个以纯文本格式传输结构化和相关信息的方法。除此之外,虽然该数据是自我描述的和易于操纵成不同的格式。XML是被视为为商业传递和获得数据的理想的方式。
微软已经做了基于XML的. NET的大部分工作,这是显而易见的,在此总结了两个类: XmlReader和XmlWriter 。微软已经创建了两个对象来贯彻执行这两个类,这就是所谓的XmlTextReader和XmlTextWriter 。这些类可以很容易在System.Xml命名空间中找到。与.NET 和ADO.NET一起协作它可以以同样的方式读取或写入数据,不管它是XML或还是相关性的数据。
微软已经创建了一个XmlDataDocument对象,以配合一个DataSet中的XML文档对象模型( DOM )的相关数据。如果您需要使用XML的,XmlDataDocument可以装载的相关联的或XML数据并且操纵它。如果XmlDataDocument正在加载相关的数据,它使用一个DataSet作为其数据源。如果相关的数据已被XmlDataDocument加载的,这要是用NET中的XML类和函数访问的。
总结:
正如你所看到的,在处理数据的方面有许多变化。有一些新的控件,但是过去的是数据控件,因此在以前版本的VB中许多开发人员总是因此而抱怨,。事实上,这里大多数的控件只是为您生成代码,并从Visual InterDev中的获取一个网页。您可以使用向导为你生成数据集,但如果你不想使用绑定控件可以使用编程方式访问这些数据集。
ADO.NET在焦点的设置上有一个重大转变。代替检索记录和文持一个开放连接到数据库,您可以在内存创建自己的小型数据库和在此缓存记录集。这是一个很有用的概念,因为你可以为您的应用程序创建定制的数据库,而无需修改的底层数据库的相关项目。这种断开模式使您的NET应用程序有更大的扩展性。