当前位置:文档之家› 第6章 数据库访问技术介绍

第6章 数据库访问技术介绍

第6章 数据库访问技术介绍
第6章 数据库访问技术介绍

本文由無月⑥聲贡献

ppt1。

第6章数据库访问技术介绍 数据库访问技术介绍

本章要点 ODBC工作原理及使用方法 ADO模型的层次结构 使用ADO技术访问数据库的方法 ADO.Net的体系结构的组成及工作原理

数据库原理及应用

2011年3月8日星期二

6.1 ODBC的使用

6.1.1 ODBC概述

ODBC(Open Database Connectivity,开放数据库互连) 是一个数据库编程接口,它是微软公司开放服务结构 (WOSA,Windows Open Services Architecture)中有关数据库 的一个组成部分,它建立了一组规范,并提供了一组对数 据库访问的标准API(应用程序编程接口)。这些API利用 SQL来完成其大部分任务。ODBC本身也提供了对SQL语言 的支持,用户可以直接将SQL语句送给ODBC。 应用程序可以通过调用ODBC的接口函数访问不同类型的数 据库,一个基于ODBC的应用程序对数据库的操作不依赖任 何DBMS,不直接与DBMS打交道,所有的数据库操作由对 应的DBMS的ODBC驱动程序完成。

数据库原理及应用

2011年3月8日星期二

也就是说,不论是FoxPro、Access还是Oracle数据库, 均可用ODBC API进行访问。由此可见,ODBC的最大优点 是能以统一的方式处理所有的数据库。 一个完整的ODBC由下列几个部件组成: ●应用程序(Application)。 ●ODBC管理器(Administrator):该程序主要任务是管理安 装的ODBC驱动程序和管理数据源。 ●驱动程序管理器(Driver Manager):驱动程序管理器包含 在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC 驱动程序,是ODBC中最重要的部件。 ●ODBC API。 ●ODBC 驱动程序:是一些DLL,提供了ODBC和数据库 之间的接口。 ●数据源:数据源包含了数据库位置和数据库类型等信息, 实际上是一种数据连接的抽象。

数据库原理及应用

2011年3月8日星期二

各部件之间的关系如图6-1所示。

图6-1 ODBC部件关系图 数据库原理及应用

2011年3月8日星期二

应用程序要访问一个数据库,首先必须用ODBC管 理器注册一个数据源,管理器根据数据源提供的数据库 位置、数据库类型及ODBC驱动程序等信息,建立起 ODBC与具体数据库的联系。这样,只要应用程序将数 据源名提供给ODBC,ODBC就能建立起与相应数据库 的连接。

6.1.2 ODBC数据源的配置

ODBC数据库驱动程序使用Data Source Name (DSN) 定位和标识数据库,DSN 包含数据库配置、用户安全 性和定位信息,且可以获取 Windows NT 注册表项中或 文本文件的表格。通过 ODBC,可以创建三种类型的 DSN :用户DSN、系统DSN或文件DSN。

数据库原理及应用

2011年3月8日星期二

下面介绍一下这几个名词。 DSN:根据MICROSOFT的官方文档,DSN的意思是 “应用程序用以请求一个连到ODBC数据源的连接 (CONNECTION)的名字”,换句话说,它是一个代表ODBC 连接的符号。它隐藏了诸如数据库文件名、所在目录、数据 库驱动程序、用户ID、密码等细节。因此,当建立一个连接 时,你不用去考虑数据库文件名、它在哪儿等等,只要给出 它在ODBC中的DSN即可。 ①用户DSN:是为特定用户建立的DSN,只有建立这个 DSN的用户才能看到并使用它。 ②系统DSN:这种DSN可以被任何登录到系统中的用户 使用。 上面的两种情况,DSN的细节都储存在系统的注册表中。 文件 DSN:这种 DSN用于从文本文件中获取表格,提 供了对多用户的访问。

6.2 ADO的使用

6.2.1 ADO技术概述

6.2.1.1 ADO概述

ADO是微软的一项技术,是ActiveX Data Objects 的缩写。 它是微软的Active-X组件,结合了OLE DB易于使用的特性以 及在诸如Remote Data Objects(RDO)和Data Access Objects(DAO)的模型中容易找到的通用特性。 ADO的思想就在于为不同的应用程序访问相同的数据源 创建一个更高层的公用层。尽管存在数据结构和组织间的物 理位置的不同,编程的接口应该是一样的。ADO 2.0还具有了 新的特性:包括事件处理,记录集的延续,分层目录结构指 针和数据成形,分布式事务处理,多维数据,远程数据服务 (RDS),以及对C++和Java的支持的增强,并且在Visual Studio 6.0中的任何开发工具中都得到了支持。

数据库原理及应用

2011年3月8日星期二

6.2.1.2 用ADO实现访问数据库

ADO主要包括以下七个对象: ① Connection:连接对象,建立一个与数据源的连接,应 用程序通过连接对象访问数据源,连接是交换数据所必需的环 境。 ②Command:命令对象,定义对数据源进行操作的命令, 以执行相应的动作,通过以建立的连接,该对象可以以某种方 式来操作数据源,一般情况下,该命令对象可以在数据源中添 加、删除或更改数据,也可以检索数据,还可完成较复杂的查 询功能。 ③Recordset:记录集对象,用于表示来自数据库或命令 执行结果集的对象,并可通过该对象控制对数据源数据的增、 删、改。 ④Error:错误对象,用来描述数据访问错误的细节。 ⑤Field:字段(域)对象,用来表示Recordset对象的字段。

数据库原理及应用

2011年3月8日星期二

⑥Parameter:参数对象,表示Command对象的命令 参数,参数可以在命令执行之前进行更改。 ⑦Property:属性对象,用来描述对象的属性,每个 ADO对象都有一组惟一的属性来描述或控制对象的行为。 属性有两种类型:内置的和动态的。内置属性是ADO对象 的一部分并且随时可用,动态属性由数据源提供者添加到 ADO对象的属性集合中,仅在该提供者被使用时才能存在。 使用ADO访问数据库的基本步骤通常都是以下五步: ●创建数据库源名; ●创建数据库链接; ●创建数据对象; ●操作数据库; ●关闭数据对象和连接。

数据库原理及应用

2011年3月8日星期二

以下示例采用的均是ASP文件中VBSCRIPT脚本语言编写 的代码: (1)创建数据库源名称,即创建和配置ODBC数据源, 该步骤在上一节已详细讲述。 (2)创建数据库连接 语法如下: Set Conn = Server.CreateObject ("ADODB.CONNECTION") 这条语句创建了数据库连接对象Conn。创建数据库连接之 后,必须打开该连接才能访问数据库,打开连接使用下面的 语句: Conn.Open "dsn_name","username","password" 其中 “dsn_name”为数据源名称。Username和password为 访问数据库的用户名和密码,均为可选参数。

数据库原理及应用

2011年3月8日星期二

例如假设已经定义了一个访问Access数据库系统DSN, 数据源名称为acce_dsn,访问数据库的代码如下: Set Conn = Server.CreateObject ("ADODB.CONNECTION") Conn.Open "acce_dsn " 如果数据源acce_dsn是访问SQL Server数据库的,并且用户 名和密码分别为sa和123456,那么访问数据库代码应为: Set Conn = Server CreateObject ("ADODB.CONNECTION") Conn.Open "acce_dsnl","sa","123456" 在ADO中还可以不通过ODBC而直接与Access数据相连, 这种方法在个人主页中大量使用(因为其用户无法进行服务器 ODBC设置操作),我们这里只简单提一下方法: Connection.Open "provider = Microsoft.Jet.OLEDB.4.0; Data Source= c:\test.mdb "

(3)创建数据对象 RecordSet保存的是数据库命令结果集,并标有一个当前记录。 以下是创建方法: Set RecordSet = Conn.Execute(sqlStr) 这条语句创建并打开了对象RecordSet,其中Conn是先前 创建的连接对象,SqlStr是一个字符串,代表一条标准的SQL 语句,例如: SqlStr = "SELECT * FROM authors" Set RecordSet = Conn.Execute (SqlStr) 这条语句执行后,对象RecordSet中就保存了表authors中 的所有记录。 (4)操作数据库 Execute方法的参数是一个标准的SQL语句串,所以我们 可以利用它方便地执行数据插入、修改、删除等操作,例如:

数据库原理及应用

2011年3月8日星期二

SqlStr = "DELETE FROM authors" Conn.Execute (SqlStr) //执行删除操作 SqlStr = "UPDATE authors SET salary=3 WHERE id= 'FZ0001' " Conn.Execute (SqlStr) //执行修改操作 (5) 关闭数据对象和连接 在使用ADO对象对数据库的操作之完成之后,一定 要关闭它,因为它使用了服务器的资源,如果不释放将 导致服务器资源浪费并影响服务器性能。通过调用方法 close实现关闭以释放资源,例如: Conn.Close

数据库原理及应用

2011年3月8日星期二

6.3 ADO.NET简介

6.3.1 ADO.NET技术的设计目标

ADO.NET是由微软ActiveX Data Object(ADO)升级 发展而来的,它是微软公司下一代数据访问标准。 在创建 ADO.NET 时具有以下设计目标: (1)利用当前的 ADO 知识 (2)支持 N 层编程模型 (3)集成 XML 支持

6.3.2 ADO.NET的体系结构

ADO.NET是由一系列的数据库相关类和接口组成的, 它的基石是XML技术,所以通过ADO.Net不仅能访问关 系型数据库中的数据,而且还能访问层次化的XML数据。 数据库原理及应用

2011年3月8日星期二

ADO.NET提供了两种数据访问的模式:一种为连接模 式(Connected),另一种为非连接模式(Discon nected)。 ADO.NET中的DataSet类是非连接模式的核心,数据集 对象(DataSet)以XML的形式存放数据。 在ADO.NET体系结构中还有一个非常重要的部分就是 数据提供者对象(Data Provider),它是访问数据库的必备 条件。通过它,可以产生相应的数据集对象;同时它还提 供了连接模式下的数据库访问支持。 6.3.2.1 ADO.NET组件的总体结构

设计 ADO.NET 组件的目的是为了从数据操作中分解 出数据访问。ADO.NET 的两个核心组件会完成此任务: DataSet 和 .NET Framework 数据提供程序,后者是一组包 括 Connection、Command、DataReader 和 DataAdapter 对象 在内的组件。

数据库原理及应用

2011年3月8日星期二

ADO.NET DataSet 是 ADO.NET 的断开式结构的核心组 件。它可以用于多种不同的数据源,用于 XML 数据,或用 于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、 外键、约束和有关 DataTable 对象中数据的关系信息组成。 ADO.NET 结构的另一个核心元素是 .NET Framework 数 据提供程序,其组件的设计目的相当明确:为了实现数据操 作和对数据的快速、只进、只读访问。Connection 对象提供 与数据源的连接。Command 对象使您能够访问用于返回数据、 修改数据、运行存储过程以及发送或检索参数信息的数据库 命令。DataReader 从数据源中提供高性能的数据流。最后, DataAdapter 提供连接 DataSet 对象和数据源的桥梁。 DataAdapter 使用 Command 对象在数据源中执行 SQL 命令, 以便将数据加载到 DataSet 中,并使对 Data Set 中数据的更改 与数据源保持一致。

.NET Framework 提供了四个 .NET Framework 数据提供 程序:SQL Server .NET Framework 数据提供程序、OLE DB .NET Framework 数据提供程序、ODBC .NET Framework 数据提供程序和 Oracle .NET Framework 数据提供程序。 如图6-8所示: 图6-8 ADO.NET组件 数据库原理及应用

2011年3月8日星期二

图6-9显示了ADO.Net总体的体系结构:

图6-9 ADO.NET的体系结构 数据库原理及应用

2011年3月8日星期二

图6-10显示了 ADO.NET 应用程序的基本结构:

图6-10 ADO.NET应用程序基本结构示意图 数据库原理及应用

2011年3月8日星期二

图6-11显示了使用ADO.NET组件访问数据库的组织结构:

图6-11 ADO.NET组件访问数据库结构示意图 数据库原理及应用

2011年3月8日星期二

6.3.2.2 ADO.NET DataSet结构

DataSet 对象是支持 ADO.NET 的断开式、分布式 数据方案的核心对象。DataSet 是数据的内存驻留表示 形式,无论数据源是什么,它都会提供一致的关系编 程模型。它可以用于多个不同的数据源,用于 XML 数 据,或用于管理应用程序本地的数据。DataSet 表示包 括相关表、约束和表间关系在内的整个数据集。 图6-12将显示 DataSet 对象模型:

数据库原理及应用

2011年3月8日星期二

图6-12 DataSet对象模型 数据库原理及应用

2011年3月8日星期二

DataSet 中的方法和对象与关系数据库模型中的方法和对 象一致。DataSet 也可以按 XML 的形式来保持和重新加载其 内容,并按 XML 架构定义语言 (XSD) 架构的形式来保持和重 新加载其架构。 ●DataTableCollection 一个 ADO.NET DataSet 包含 DataTable 对象所表示的零个 或更多个表的集合。DataTableCollection 包含 DataSet 中的所 有 DataTable 对象。 DataTable 在 System.Data 命名空间中定义,表示内存驻 留数据表。它包含 DataColumnCollection 所表示的列和 ConstraintCollection 所表示的约束的集合,这些列和约束一起 定义了该表的架构。DataTable 还包含Dat aRowCollection 所表 示的行的集合,而DataRowCollecti on 则包含表中的数据。除 了其当前状态之前,Data Ro w 还会保留其当前版本和初始版 本,以标识对行中存储的值的更改。

数据库原理及应用

2011年3月8日星期二

●DataRelationCollection DataSet 在其 DataRelationCollection 对象中包含关系。 关系由 DataRelation 对象来表示,它使一个 DataTable 中 的行与另一个 DataTable 中的行相关联。关系类似于可能 存在于关系数据库中的主键列和外键列之间的联接路径。 DataRelation 标识 DataSet 中两个表的匹配列。 关系使您能够在 DataSet 中从一个表导航至另一个表。 DataRelation 的基本元素为关系的名称、相关表的名称以 及每个表中的相关列。关系可以通过一个表的多个列来 生成,方法是将一组 DataColumn 对象指定为键列。当关 系被添加到 DataRelationCollection 中时,如果已对相关列 值作出更改,它可能会选择添加一个 UniqueKeyConstraint 和一个 ForeignKeyConstraint 来强制 完整性约束。

数据库原理及应用

2011年3月8日星期二

●ExtendedProperties DataSet(以及 DataTable 和 DataColumn)具有Ex tendedProperties 属性。ExtendedProperties 是一个Prop ertyCollection,您可以在

期/时间戳。 ExtendedProperties 集合与 DataSet(以及 DataTable 和 DataColumn)的架构信息一起进行保持。

6.3.2.3 .NET Framework数据提供程序

.NET Framework 数据提供程序用于连接到数据库、执行 命令和检索结果。利用它可以直接处理检索到的结果,或将其 放入 ADO.NET DataSet 对象,以便与来自多个源的数据或在 层之间进行远程处理的数据组合在一起,以特殊方式向用户公 开。.NETFrame work 数据提供程序在设计上是轻量的,它在 数据源和代码之间创建了一个最小层,以便在不以功能为代价 的前提下提高性能。

数据库原理及应用

2011年3月8日星期二

表6-3概括了组成 .NET Framework 数据提供程 序的四个核心对象。 表6-3 数据提供程序的四个核心对象 对象 Connection Command DataReader DataAdapter

数据库原理及应用

说明 建立与特定数据源的连接

对数据源执行命令。公开 Parameters,并且可 以从 Connection 在 Transaction 的范围内 执行

从数据源中读取只进且只读的数据流 用数据源填充 DataSet 并解析更新

2011年3月8日星期二

.NET Framework 包括 SQL Server .NETFramew ork 数据提供程序(用于 Microsoft SQL Server 7.0 版或更高 版本)、OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序。 (1)SQL Server .NET Framework 数据提供程序 SQL Server .NET Framework 数据提供程序使用它 自身的协议与 SQL Server 通信。由于它经过了优化, 可以直接访问 SQL Server 而不用添加 OLE DB 或开放 式数据库连接 (ODBC) 层,因此它是轻量的,并具有良 好的性能。SQL Server .NET Framework 数据提供程序 只能访问 Microsoft SQLSe rver 7.0 或更高版本。它位于 System.Data.SqlClient 命名空间中。使用时应用程序中 应包含System.Data.SqlClient命名空间。

数据库原理及应用

2011年3月8日星期二

(2)OLE DB .NET Framework 数据提供程序 OLE DB .NET Framework 数据提供程序通过 COM Interop(COM互操作性,可以使.NET程序在不修改原有 COM组件的前提下方便的访问COM组件) 使用本机 OLE DB 启用数据访问。OLE DB .NET Framework 数据 提供程序支持本地事物和分布式事务两者。对于分布式 事务,默认情况下,OLE DB .NET Framework 数据提供 程序自动登记在事务中,并从 Windows 2000 组件服务获 取事务详细信息。若要使用 OLE DB .NET Framework 数 据提供程序,所使用的 OLE DB 提供程序必须支持 OLE DB .NET Framework 数据提供程序所使用的 OLE DB 接 口中列出的 OLE DB 接口。

数据库原理及应用

2011年3月8日星期二

表6-4 显示已经用 ADO.NET 进行测试的OLE DB提供 程序。 表6-4 ADO.NET的OLE DB提供程序 驱动程序 SQLOLEDB MSDAORA 提供程序 用于 SQL Server 的 Microsoft OLE DB 提供程序 用于 Oracle 的 Microsoft OLE DB 提供程序

Microsoft.Jet.OLE 用于 Microsoft Jet 的 OLE DB 提供 DB.4.0 程序

数据库原理及应用

2011年3月8日星期二

OLE DB .NET Framework 数据提供程序类位于 System.Data.OleDb 命名空间中。使用时应用程序中应包 含 System.Data.OleDb命名空间。 (3)ODBC .NET Framework 数据提供程序 ODBC .NET Framework 数据提供程序通过 COM interop 使用本机 ODBC 驱动程序管理器 (DM) 启用数据 访问。ODBC 数据提供程序支持本地事物和分布式事务 两者。对于分布式事务,默认情况下,ODBC 数据提供 程序自动登记在事务中,并从 Windows 2000 组件服务获 取事务详细信息。 表6-5显示了用 ADO.NET 测

数据库原理及应用

2011年3月8日星期二

表6-5 ODBC驱动程序 驱动程序 SQL Server Microsoft ODBC for Oracle Microsoft Access 驱动程序 (*.mdb) ODBC .NET Framework 数据提供程序类位于Syste m.Data.Odbc 命名空间中。使用时应用程序中应包含Sys tem.Data.Odbc 命名空间。 数据库原理及应用

2011年3月8日星期二

(4)Oracle .NET Framework 数据提供程序 Oracle .NET Framework 数据提供程序通过 Oracle 客户 端连接软件启用对 Oracle 数据源的数据访问。该数据提供 程序支持 Oracle 客户端软件 8.1.7 版和更高版本。它支持本 地事物和分布式事务。 Oracle .NET Framework 数据提供程序要求必须先在系 统上安装 Oracle 客户端软件(8.1.7 版或更高版本),才能 使用它连接到 Oracle 数据源。 Oracle .NET Framework 数据提供程序类位于Syste m.Data.OracleClient 命名空间中,并包含在System.Da ta.OracleClient.dll 程序集中。在编译使用该数据提供程序的 应用程序时,将需要同时引用 System.Data.dll 和 System.Data.OracleClient.dll。使用时应用程序中应包含 System.Data.OracleClient 命名空间。

数据库原理及应用

2011年3月8日星期二

6.3.2.4 选择 .NET Framework 数据提供程序

根据应用程序的设计和数据源,选择合适 .NET Framework 数据提供程序可以提高应用程序的性能、功 能和完整性。下面说明各个 .NET Framework 数据提供 程序的优点和限制。 SQL Server .NET Framework 数据提供程序:建议 用于使用 Microsoft SQL Server 7.0 或更高版本的中间层 应用程序或者用于使用 Microsoft 数据引擎 (MSDE) 或 Microsoft SQL Server 7.0 或更高版本的单层应用程序。 OLE DB .NET Framework 数据提供程序:建议用于 使用 Microsoft SQL Server 6.5 或较早版本的中间层应用 程序,或任何支持 OLE DB .NET Framework 数据提供 程序所使用的 OLE DB 接口中所列 OLE DB接口

数据库原理及应用

2011年3月8日星期二

(不要求 OLE DB 2.5 接口)的 OLE DB 提供程序。 对于 Microsoft SQL Server 7.0 或更高版本,建议使用 SQL Server .NET Framework 数据提供程序。建议用于使用 Microsoft Access 数据库的单层应用程序。不建议将 Microsoft Access 数据库用于中间层应用程序。 ODBC .NET Framework 数据提供程序:建议用于使用 ODBC 数据源的中间层应用程序或者用于使用 ODBC 数据 源的单层应用程序。 Oracle .NET Framework 数据提供程序:建议用于使用 Oracle 数据源的中间层应用程序或者用于使用Ora cle 数据 源的单层应用程序。Oracle .NET Framework 数据提供程序 位于 System.Data.OracleClient 命名空间中,并包含在 System.Data.OracleClient.dll 程序集中。在编译使用该数据 提供程序的应用程序时,需要同时引用 System.Data.dll 和 System.Data.OracleClient.dl l。

数据库原理及应用

2011年3月8日星期二

6.3.3 ADO.NET数据对象介绍

(1)Connection对象 Connection对象主要用于建立与数据源的活动连接。 一旦建立了连接,其他独立于连接细节(但依赖于活动连 接)的对象,如Command对象,就可以使用连接在数据源 上执行命令。 每个.NET数据提供者都有其自己特定于提供者的连接 类,您可以对它们进行实例化,这样的版本实现 IdbConnection接口,可通过System.Data命名空间得到。例 如,SqlConnection和OleDbConnection都实现IdbConnection 接口。该接口表示与数据源的惟一会话,提供基本的连接 操作,允许用户随意关闭、打开或更改连接。

数据库原理及应用

通常,通过显式调用Open()方法建立连接。一旦它完成 了自己的任务,例如用数据源中的关系数据填充DataSet对象, 就可以显式调用Close()方法来关闭连接。不再使用连接时, 最好确保始终显式关闭连接,以减少对服务器资源的任何不 必要的浪费。 如果由于某种原因没有显式关闭连接,则由Garbage Collector找到未被引用的Connection对象,将其收集起来。然 而,不需要时最好显式关闭连接,因为这样可确保保存对数 据所做的所有更改。 (2)Command对象 Command对象负责使用SQL语句查询数据源。

数据库原理及应用

2011年3月8日星期二

命令可以采取多种形式:可以设法通过简单的SQL查询字 符串或存储过程更新、修改或检索数据源数据。如果对数据库 执行命令后返回结果,Command对象就可以把结果填充在 DataReader中,作为标题值返回(例如按影响行的数目),或 者以参数的形式返回结果。 所有的.NET数据提供者Command类都实现IdbC omman接 口。可用于执行命令的3个默认函数是: ① ExecuteReader,返回填充后的对象DataReader。 ② ExecuteScalar,返回标量值。 ③ ExecuteNonQuery,返回被执行命令影响到的行的数目。 DataReader对象从数据库中读取每个记录,提供对数据库 快速不缓冲的只读的顺序访问。此外,DataReader有一种访问 数据库的非常简洁的方法:它把进来的数据流视作集合,循环 经过数据,一次加载一行,就像我们处理数组一样,从而减少 了系统的额外工作,并提高了应用程序的性能。

数据库原理及应用

2011年3月8日星期二

(4)DataAdapter对象 DataAdapter用于断开连接的环境,因为它提供 了两个非常有用的方法,即Fill()和Update()方法。 Fill()方法同步保存数据源中的数据与DataSet中的数 据。Updata()方法用DataSet中修改过的数据更新数 据源,这种更新可以是从添加一个行到添加新表的 任意操作。第7章提供有关DataAdapter及DataSet的 更多信息。

数据库原理及应用

2011年3月8日星期二

(5)DataSet DataSet是ADO.NET离线访问的核心。这个类代表关系 数据的内存内的离线容器,数据由任意类型的外部数据源生 成(XML文件、Access数据库等)。应用程序可以用数据不 断地填充它,除非最终耗尽系统内存或本地磁盘空间。有时, 它可以表示DataTable对象形式的很多表,这些对象又可以代 表任意数目的列、行和关系,分别表示为DataColumn、 DataRow、Constraint和DataRelation对象。DataSet可以保存 提供给独立于数据源的关系数据模型的数据,并把自己表现 为关系数据的种层次结构,同时与数据源断开连接。由于 DataSet无法了解到连接到什么数据源,因此可以像处理应 用程序的本地数据一样有效地工作,从而可把数据存储在外 部数据源或文件中。

数据库原理及应用

2011年3月8日星期二

相关主题
文本预览
相关文档 最新文档