本系列课程我们将会从ADO.NET对象的各个角度出来,来讲述ADO.NET对象发布以后的全新功能,这主要包括C#3.0,VB9.0,WCF,WPF,WP,LINQ,AJAX,mobile开发,Cardspace,智能客户端。
如果要迁移代码,我们可以把现有的ADO代码导入到.NET应用之中,从而节省在编写代码方面的投入。然而,ADO.NET对象如果不做重大的设计调整,同样的代码几乎不可能移植到ADO.NET。ADO和ADO.NET的对象模型不一样,两者在不同的设计指导思想下完成。
ADO.NET只用来构造基于.NET服务器的Web应用。ADO.NET是.NET应用程序的数据访问API。因此,ADO.NET对象只有把服务器升级到.NET之后,你才可以考虑ADO.NET。在同一个应用程序中,让ADO和ADO.NET协同运作是没有什么意义的。虽然你可以同时使用这两者(至少从设计的角度来看),但这并不是一种好的选择。
DataSet:这个对象是一个集合对象,ADO.NET对象可以包含任意数量的数据表,以及所有表的约束、索引和关系。所有这些信息都以XML的形式存在,我们可以处理、遍历、搜索任意或者全部的数据。图1显示了一个典型的DataSet对象的模式。在这个例子中,DataSet对象包含两个表,ADO.NET对象其中一个表来自SQL Server,另一个表来自Oracle。两个表通过一个关系连接到一起,关系把源表的一组记录和目的表的一组记录关联到一起(例如,主-细关系)。另外,一个XML表通过一对一(1:1)的关系关联到了Oracle表。 #t#
DataTable:这个对象代表着可以在DataSet对象内找到的所有表,如图2所示。我们通过Tables属性访问DataTable的集合。类似地,通过DataSet的Relations属性可以访问到所有已经建立的数据集关系。Xml属性包含了对象原始的XML描述,.NET应用程序可以从这个XML字符串重新构造出数据集。
在ADO.NET对象模型的层次结构中,DataTable对象与ADO的Recordset对象最接近。根据具体目的的不同,我们可以在数据集之内或之外创建和使用表。另外,我们可以手工执行命令——但首先必须定义表的模式——或者,依靠受管理数据提供者创建和填充表。(受管理提供者即Managed Provider,它是一种新的数据提供者类型,是ADO.NET中***直接访问数据源的途径。这种提供者封装了一个数据源,通过Microsoft .NET类返回数据。受管理提供者共用OLE DB的观念,但它是经过专用化的、优化的,而且很容易使用。)
DataColumn:表包含与列有关的信息,包括列的名称、类型和属性。ADO.NET对象我们可以按照下面的方式创建DataColumn对象,指定数据类型,然后把列加入到表: