非类型化数据集是在窗体或组件中创建的 DataSet 类的实例。
与类型化数据集不同,非类型化数据集不是用 XML 架构 (.xsd) 文件生成的类的实例。因此,非类型化数据集没有内在的结构。您在设计时在“属性”窗口中或在运行时用代码自行创建表、列、约束和 DataRelation 对象,或通过在使用数据适配器填充数据集时允许数据适配器的映射来进行这样的创建。(续下一章)
ADO DotNET 技术技术介绍:
参考如下BLOG
http://blog.csdn.net/dreamyu_zy/archive/2008/12/12/3504316.aspx
.NET使用的数据库访问技术是ADO.NET。在讲述ADO.NET之前,先简要介绍一下在ADO.NET出现之前广泛使用的ADO数据访问技术。将ADO.NET与ADO进行对比有助于深入地理解和掌握ADO.NET。
为了给应用程序提供一个统一的与数据库进行连接通信的接口,在20世纪90年代初,Microsoft开发了ODBC技术,ODBC是Open DataBase Connectivity Interface(开放式数据库连接接口)的简称,它提供了SQL语言和数据库进行通信的一般标准。
ADO.NET由Microsoft ActiveX Data Objects (ADO)改进而来,是一种先进的数据库访问技术,提供平台互用和可收缩的数据访问功能。.NET使用XML(Extensible Markup Language,可扩展标记语言)作为数据传送的格式,任何可以读取XML格式的应用程序都可以对数据进行处理。实际上,接收组件根本不需要ADO.NET组件。它可以是基于Microsoft Visual Studio的解决方案或在任何平台上运行的任何应用程序。
ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和Web的应用程序的主要功能。但是ADO使用OLE DB接口并基于Microsoft的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于Microsoft的.NET体系架构。.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADO和OLE DB接口,这也就是说ADO.NET和ADO是两种数据访问方式。ADO.NET为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。
ADO以Recordset存储,而ADO.NET则以DataSet表示。Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线
由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范,而ADO.NET基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。
可以看到,ADO.NET模型中的两个核心组件是.NET Data Provider(数据提供程序)和DataSet Object(数据集对象)。.NET Data Provider是数据库的访问接口,负责建立到数据库的连接和数据操作,它作为DataSet Object与数据源之间的桥梁,负责将数据源中的数据取出后置入DataSet Object中,或将数据存回数据源。DataSet是ADO.NET的断开式结构的核心组件。它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。
.NET Framework提供了四个.NET Framework数据提供程序:
1) SQL Server .NET Framework 数据提供程序。适用于 Microsoft SQL Server 7.0版或更高版本。
2) OLE DB .NET Framework 数据提供程序。适用于所有提供了OLE DB接口的数据源,包括Access, SQL Server 6.5或更低版本的数据库等。
3)ODBC .NET Framework 数据提供程序。适合于所有提供了ODBC接口的数据源。
SQL Server .NET Framework数据提供程序使用它自身的协议(Tabular Data Stream,TDS)与SQL Server直接通信。由于它经过了优化,可以直接访问SQL Server而不用添加OLE DB或开放式数据库连接(ODBC)层,因此它是轻量的,并具有良好的性能。
对比了SQL Server .NET Framework数据提供程序和OLE DB .NET Framework数据提供程序的异同。
OLE DB .NET Framework数据提供程序通过OLE DB服务组件(它提供连接池和事务服务)和数据源的OLE DB提供程序才能与OLE DB数据源进行通信。因此,使用SQL Server .NET数据提供程序访问SQL Server数据库比使用OLE DB .NET数据提供程序效率更高。
n 这4个核心对象的功能如下:
n 1) Connection:建立与特定数据源的连接
n 2) Command:对数据源执行数据库命令,用于返回数据、修改数据、运行存储过程以及发送或检索参数信息等。
n 3) DataReader:从数据源中读取只进且只读的数据流。
n 4) DataAdapter:执行SQL命令并用数据源填充DataSet。DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致。
n ADO.NET的数据访问策略有两种,一是将数据记录缓存于数据集(Dataset)中,二是直接访问数据库并使用数据读取器(DataReader)来读取数据记录。那么,应用程序应使用Dataset还是DataReader呢?此时应考虑应用程序所需要的功能。
Dataset功能强大,用于执行以下功能:
1) 对数据执行大量的处理,而不需要与数据源保持打开的连接,从而可以将该连接释放给其他客户端使用。
2) 在应用程序本地缓存数据。
3) 与数据进行动态交互,例如绑定到Windows窗体控件或组合并关联来自多个源的数据。
4) 提供关系数据的分层XML视图,并使用XSL转换或XML路径语言(XPath)查询等工具来处理数据。
5) 在层间或从XML Web services对数据进行远程处理。
DataReader功能有限,只能以只进只读方式返回数据,但是这种方式节省了DataSet所使用的内存,并将省去创建DataSet并填充其内容所需的必要处理,因此提高了应用程序的性能。
ADO.NET数据库操作的基本步骤:
在.NET数据库应用程序中操作数据库的方法可以有两种:一是通过直接编写程序代码进行数据库连接和数据库操作;二是使用VS.NET提供的数据控件,用可视化的方法帮助实现对数据库的操作。