60
VB 中中 ADO 中中中中 补补补补

VB 中的 ADO 对象编程

Embed Size (px)

DESCRIPTION

VB 中的 ADO 对象编程. 补充内容. ADO(ActiveX Data Objects) ActiveX 数据对象. 是微软最新的数据访问技术,与 OLE DB 一起工作。 OLE DB 是一个低层的基于 COM 的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种数据源,包括关系型数据库、电子邮件系统、自定义的商业对象。 其模型如下:. VB 应用程序. ADO. OLE DB. RDBMS. 目录管理. Email. 先在 VB 工程中把 ADO 对象库加载上. - PowerPoint PPT Presentation

Citation preview

Page 1: VB 中的 ADO 对象编程

VB 中的 ADO 对象编程

补充内容

Page 2: VB 中的 ADO 对象编程

ADO(ActiveX Data Objects) ActiveX 数据对象 是微软最新的数据访问技术,与 OLE D

B 一起工作。 OLE DB 是一个低层的基于 COM 的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种数据源,包括关系型数据库、电子邮件系统、自定义的商业对象。

其模型如下:

Page 3: VB 中的 ADO 对象编程

VB 应用程序

ADO

OLE DB

RDBMS Email 目录管理

Page 4: VB 中的 ADO 对象编程

先在 VB 工程中把 ADO 对象库加载上

工程 引用 选中 microsoft activex data object 2.7 library

Page 5: VB 中的 ADO 对象编程
Page 6: VB 中的 ADO 对象编程

一、通过 DSN 建立连接 DSN: 应用程序用以请求一个连到 ODB

C(open database connectivity, 开放数据库互连 ) 数据源的连接的名字。

也就是说他代表 ODBC 连接的名字,隐藏了诸如数据库名字、所在目录、数据库驱动程序、用户 ID 、密码等,使具体的数据库对应用程序变得透明。

Page 7: VB 中的 ADO 对象编程

1 、 DSN 分类: 系统 DSN :可以被登陆到系统中的所有

用户使用。 用户 DSN :为特定用户建立的,只能被

建立他的用户使用。 文件 DSN :用于文档的 DSN 。

Page 8: VB 中的 ADO 对象编程

2 、如何建立 Access 的系统 DSN : (Winxp)

(1) 开始 控制面板 性能维护 管理工具 数据源 ODBC;

(2) 单击系统 DSN 选项卡 添加创建新数据源

Page 9: VB 中的 ADO 对象编程
Page 10: VB 中的 ADO 对象编程
Page 11: VB 中的 ADO 对象编程
Page 12: VB 中的 ADO 对象编程
Page 13: VB 中的 ADO 对象编程
Page 14: VB 中的 ADO 对象编程

3 、建立 SQL Server 系统 DSN

Page 15: VB 中的 ADO 对象编程
Page 16: VB 中的 ADO 对象编程
Page 17: VB 中的 ADO 对象编程

Dim cna as new adodb.connection Dim cnb as new adodb.connection Private sub command1_click() Dim cnastring as string Cnastring=“dsn=sqlpubs;uid=sa;pwd=1234” ‘SQL

DSN 数据源的连接字符串 With cna .connectionstring=cnastring .connectiontimeout=10 .open End with 或: cna.open “dsn=sqlpubs;uid=sa;pwd=1234” 或: can.open Cnastring

Cna.close ‘ 关闭连接End sub

Page 18: VB 中的 ADO 对象编程

Private sub command2_click()Dim cnbstring as stringCnbstring=“dsn=aa;uid=;pwd=” ‘Access DSN 数据源的连接字符串With cnb .connectionstring=cnastring .connectiontimeout=10 .openEnd with或: cnb.open“dsn=aa;uid=;pwd=”

Cnb.close ‘ 关闭连接End sub

Page 19: VB 中的 ADO 对象编程

二、直接使用数据库文件名 1 、 SQL Server 的连接字符串 “driver={SQL Server};server=bjz;database=pubs;

uid=sa;pwd=1234” 2 、 Access 的连接字符串 (1)“driver=Microsoft access driver(*.mdb);DBQ=

“ & app.path & “\student.mdb” (2) 使用 OLE DB 提供者建立连接 "provider=Microsoft.Jet.OLEDB.4.0;Data Sour

ce=“ & App.Path & ”\student.mdb" & “user id=;password=”

Page 20: VB 中的 ADO 对象编程

ADO 中比较重要的是 :Command,Connection,Recordset 对象

(1) Connection 对象   Connection 对象用于建立与数据库的连接,通过连接可从应用程序访问数据源 . 它保存诸如指针类型 , 连接字符串 , 查询超时 , 连接超时和缺省数据库这样的连接信息。

Page 21: VB 中的 ADO 对象编程

2) Command 对象  在建立 Connection 后 , 可以发出命令操作数据源。一般情况下 ,Command对象可以在数据库中添加 , 删除或更新数据 , 或者在表中进行数据查询。 Command 对象在定义查询参数或执行一个有输出参数的存储过程时非常有用。

Page 22: VB 中的 ADO 对象编程

(3) Recordset 对象   Recordset 对象只代表一个记录集 , 这个记录集是一个连接的数据库中的表 , 或者是 Command 对象的执行结果返回的记录集 . 在 ADO 对象模型中 , 是在行中检查和修改数据的最主要的方法 , 所有对数据的操作几乎都是在Recordset 对象中完成的。 Record 对象用于指定行 , 移动行 , 添加 , 更改 , 删除记录 .

Page 23: VB 中的 ADO 对象编程

在实际编程过程中使用 ADO 的一个典型的存取数据的步骤为:   1 、 连接数据源   2 、 打开记录集对象   3 、 使用记录集   4 、 断开连接

Page 24: VB 中的 ADO 对象编程

1 、 如何连接数据源  利用 Connection 对象可以创建一个数据源的连接 .应用的方法是 Connection 对象的 Open 方法 .  语法 :   Connection 对象 .Open ConnectionString, UserID, PassWord, OpenOptions 其中:  Connection 对象为你定义的 Connection 对象的实例 ;  ConnectionString 为可选项 , 包含了连接的数据库的信息 ;  UserID 可选项 , 包含建立连接的用户名 ;  PassWord 为可选项 , 包含建立连接的用户密码 ;  OpenOptions 为可选项 , 假如设置为 dConnectAsync, 则连接将异步打开 .

例: cn.open Cnstring

Page 25: VB 中的 ADO 对象编程

2. 打开记录集对象   实际上记录集返回的是一个从数据库取回的查询结果集 . 因此有三种打开方法 :

一种使用记录集的 Open 方法。 另一种是用 Connection 对象的 Execute

方法 . 一种是用 Command 对象的 Execute 方

法 .

Page 26: VB 中的 ADO 对象编程

(a) 记录集的 Open 方法  语法 :   Recordset.Open Source, ActiveConnection, CursorType, LockType, Options  其中:   Recordset 为所定义的记录集对象的实例 .   Source 可选项 , 指明了所打开的记录源信息 . 可以是合法的命令 , 对象变量名 ,SQL 语句 , 表名 , 存储过程调用 , 或保存记录集的文件名 .   ActiveConnection 可选项 , 合法的已打开的 Connection 对象的变量名 , 或者是包含 ConnectionString 参数的字符串 .   CursorType 可选项 , 确定打开记录集对象使用的指针类型 .   LockType 可选项 确定打开记录集对象使用的锁定类型 .

Page 27: VB 中的 ADO 对象编程

(b)Connection 对象的 Execute 方法  语法 :   Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)  参数说明 : CommandText 一个字符串 , 返回要执行的SQL 命令 , 表名 , 存储过程或指定文本 .   RecordsAffected 可选项 ,Long 类型的值 , 返回操作影响的记录数 .   Options 可选项 ,Long 类型值 , 指明如何处理 CommandText 参数 .

Page 28: VB 中的 ADO 对象编程

(c) Command 对象的 Execute 方法使用 Command 对象的 Execute 方法执行 Comma

ndText 属性中设置的 SQL 命令 , 返回查询记录集 . 语法如下 :   Command.Execute RecordsAffected, Parameters, Options ' 不返回记录集或者 Set Recordset=

command.Execute(RecordsAffected,Parameters,Options) ‘ 返回记录集

   CommandText 的语法为 :   Command.CommandText=stringvariable  其中 : stringvariable 为字符串变量 , 包含 SQL 语句 , 表名或存储过程 .

Page 29: VB 中的 ADO 对象编程

3. 使用记录集   (a) 添加新的记录 :  在 ADO 中添加新的记录用的方法为 :AddNew 它的语法为 :   Recordset.AddNew FieldList, Values   Recordset 为记录集对象实例   FieldList 为一个字段名 , 或者是一个字段数组 .   Values 为给要加信息的字段赋的值 , 如果 FiledList 为一个字段名 , 那么 Values 应为一个单个的数值 , 假如 FiledList 为一个字段数组 , 那么 Values 必须也为一个个数 , 类型与 FieldList相同的数组 .  当用 AddNew 方法为记录集添加新的记录后 , 应使用 UpDate 将所添加的的数据存储在数据库中 .

(记录的修改)

Page 30: VB 中的 ADO 对象编程

(b) 删除记录  在 ADO 中删除记录集中的数据的方法为 :Delete 方法 , 这与 DAO 对象的方法相同 ,但是在 ADO 中它的能力增强了 , 可以删掉一组记录了 .  它的语法如下 :   Recordset.Delete AffectRecords  其中的 ,AffectRecords 参数是确定 Delete 方法作用的方式的 , 它的取值如下 :   adAffectCurrent 只删除当前的记录   adAffectGroup 删除符合 Filter 属性设置的那些记录 . 为了一次能删除一组数据 ,应设置 Filter 属性 .

Page 31: VB 中的 ADO 对象编程

(c) 查询记录  在 ADO 中查询的方法很灵活 , 有几种查询的方法 .  使用连接对象的 Execute 方法执行 SQL命令 , 返回查询记录集 .  使用 Command 对象的 Execute 方法执行 CommandText 属性中设置的 SQL 命令 , 返回查询记录集 .

使用记录集的 Open 方法,返回查询记录集。

Page 32: VB 中的 ADO 对象编程

4. 断开连接  在应用程序结束之前 , 应该释放分配给 ADO 对象的资源 , 操作系统回收这些资源并可以再分配给其他应用程序 .  使用的方法为 :Close 方法 .  语法如下 :   Object.Close ‘ Object 为 ADO 对象如果不做的话,通常 VisualBasic会自动释放和回收资源。rs.CloseSet rs=NothingSet cmd=Nothingcn.CloseSet cn=Nothing

Page 33: VB 中的 ADO 对象编程

二、 数据库访问对象( ADO) ADO(ActiveX Data Objects)ActiveX 数据对象是微软最新的数据访问技术,与 OLE DB 一起工作。

 在 Visual Basic 中使用 ADO– 在一个打开的 Visual Basic 6.0 的工程中,选择菜单〔工程〕 / 〔引用〕命令,出现“引用”对话框。在“可用的引用”列表框中选择Microsoft ActiveX Data Objects 2.8 选项,单击〔确定〕按钮,就可以在程序中加入对 ADO 的引用了。

Page 34: VB 中的 ADO 对象编程

使用 ADO 可以实现以下目的:a)连接一个本地数据库或远程数据库b)打开一个指定的数据库表,或定义一个基于

结构化查询语言( SQL)的查询或存储过程或该数据库中的表的视图的记录集合

c)将数据字段的值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值

d)添加新的记录,或根据对绑定的控件中的数据的更改来更新一个数据库

Page 35: VB 中的 ADO 对象编程

– ADO 的内置对象1 、连接对象( Connection )

用来与数据库建立连接。在建立连接前,最主要的是需要设置连接字符串,用来指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。

常用的属性与方法:– ConnectionString 属性:连接字符串,在打开连接前需要设置– ConnectionTimeout 和 Mode 属性:超时时间和连接模式,

一般在打开连接前也需要设置– CursorLocation 属性:设置或者返回游标位置– DefaultDatabase 属性:为连接指定一个默认的据库– Provider 属性:为连接指定一个驱动程序,可以包括在 Conn

ectionString 中– Open,Close 方法:建立或中断一个连接– Execute 方法:在连接上执行命令,比如执行一个 SQL 语句– Errors 对象:数据源返回的错误信息  ( eg)

Page 36: VB 中的 ADO 对象编程

“连接”是交换数据所必需的环境,通过“连接”可使应用程序访问数据源。 Connection 对象用于指定专门的提供者和任意参数。下表 列出 Connection 对象的常用属性和方法。

ConnectionString属性 指定到数据源的连接字符串

Open方法 打开到数据源的连接

Execute方法 对连接执行各种操作

Cancel方法 取消 Open 或 Execute方法的调用

Close方法 关闭打开的 Connection对象

Page 37: VB 中的 ADO 对象编程

如何连接 利用 Connection 对象可以创建一个数据源的连接 . 应用

的方法是 Connection 对象的 Open 方法 .  语法 :Connection 对象 .Open ConnectionString, UserID, PassWord, OpenOptions 其中:  Connection 对象为你定义的 Connection 对象的实例 ;  ConnectionString 为可选项 , 包含了连接的数据库的信息 ;  UserID 可选项 , 包含建立连接的用户名 ;  PassWord 为可选项 , 包含建立连接的用户密码 ;  OpenOptions 为可选项 , 假如设置为 adConnectAsync, 则连接将异步打开 .

Page 38: VB 中的 ADO 对象编程

直接使用数据库文件名建立连接1 、 SQL Server 的连接字符串“driver={SQL Server};server=127.0.0.1;database=stu

dent;uid=sa;pwd=xxxx”2 、 Access 的连接字符串(1)“driver=Microsoft access driver(*.mdb);DBQ=“ & a

pp.path & “\student.mdb”(2) 使用 OLE DB 提供者建立连接"provider=Microsoft.Jet.OLEDB.4.0;Data Source=

“ & App.Path & ”\student.mdb" & “user id=;password=”

Page 39: VB 中的 ADO 对象编程

2 、命令对象( Command)  定义了数据库的一系列操作。使用命令对象来查询数据

库,查询结果以数据集对象( Recordset)形式返回。命令对象在操纵数据库前需要与一个已经打开的连接对象( Connection)建立关联。

常用的属性与方法: ActiveConnection 属性:将一个命令行对象与一个打开的

连接关联 CommandText 属性:定义命令行的内容,比如 SQL 语句

等 CommandType 属性:指定命令的类型 CommandTimeout 属性:指定服务器等待一条命令执行的

时间 Execute 方法:执行命令并返回一个数据集对象( Record

set)

Page 40: VB 中的 ADO 对象编程

ActiveConnection属性 设置到数据源的连接信息

CommandText属性 定义命令(例如, SQL语句)的可执行文本

CommandType属性 指定命令类型以优化性能

Execute方法 执行 CommandText属性指定的操作

Cancel方法 取消 Execute方法的调用

Page 41: VB 中的 ADO 对象编程

  3 、数据集对象( Recordset)  定义了从数据库返回的一系列记录的集合。通过数

据集可以对记录及组成记录的列进行各种操作。常用的属性与方法: RecordCount 属性:返回记录集中记录的条数 BOF,EOF 属性:返回记录集中游标的当前位置是否是

记录集的头或尾 MoveNext,MovePre: 将记录集中的游标向后、前移动

一个位置 MoveFirst,MoveLast: 将记录集中的游标移动到最前或

最后

Page 42: VB 中的 ADO 对象编程

ActiveConnection属性 返回 Recordset对象所属的 Connection对象。

BOF和 EOF属性 指示当前记录指针是否位于首记录前、末记录后。

Bookmark属性 返回并设置当前记录的书签

CursorType属性 指定打开 Recordset对象时应该使用的游标类型

Filter属性 设置 Recordset对象中的筛选条件

RecordCount属性 返回 Recordset对象中记录的数目

Sort属性 设置排序字段

Source属性 指定 Recordset对象的数据源: Command对象变量、 SQL语句、存储过程

AddNew方法 可创建和初始化新记录

CancelUpdate方法 可取消对当前记录所作的任何更改或放弃新添加的记录

Delete方法 删除当前记录或记录组

Move方法 移动 Recordset对象中当前记录的位置

MoveFirst、MoveLast、MoveNext和MovePrevious方法

移动到指定 Recordset对象中的第一个、最后一个、下一个或上一个记录并使该记录成为当前记录

Requery方法 重新执行对象所基于的查询,来更新 Recordset对象中的数据

Update方法 保存对 Recordset对象的当前记录所做的所有更改

Page 43: VB 中的 ADO 对象编程

打开记录集对象  实际上记录集返回的是一个从数据库取回的查询结果集 .因此他有三种打开方法 :

•一种使用记录集的 Open 方法 ,•另一种是用 Connection 对象的 Execute 方法 .•第三种是使用 Command 对象的 Execute 方法执行CommandText 属性中设置的 SQL 命令 ,返回查询记录集 .

Page 44: VB 中的 ADO 对象编程

1. 记录集的 Open 方法  语法 :Recordset.Open Source, ActiveConnection, CursorType, LockType, Options  其中:   Recordset 为所定义的记录集对象的实例 .   Source 可选项 ,指明了所打开的记录源信息 .可以是合法的命令 ,对象变量名 ,SQL 语句 ,表名 ,存储过程调用 ,或保存记录集的文件名 .   ActiveConnection 可选项 ,合法的已打开的 Connection 对象的变量名 ,或者是包含 ConnectionString 参数的字符串 .   CursorType 可选项 ,确定打开记录集对象使用的指针类型 .   LockType 可选项 确定打开记录集对象使用的锁定类型 .

Page 45: VB 中的 ADO 对象编程

使用 recordset 的 open 方法返回记录集:dim cn as new adodb.connection

dim rs as new adodb.recordset

Dim cnstring$,strsql$

Cnstring=“driver={SQL Server};server=127.0.0.1;database=student;uid=sa;pwd=”

Strsql =“select * from 基本情况 where 班级 =”05 网一“ or 班级 =”05 网二“”

Cn.open cnstring

Rs.open strsql,cn,1,1

记录集类型,1 是键集游标

记录集锁类型1 :只读

3 :开放式可以 update

Page 46: VB 中的 ADO 对象编程

CursorType(游标类型)有四种:程序中常用第二种 AdOpenKeyset,

AdOpenForwardOnly = 0 ''只能用 MoveNext读取 ,并且打开的同时建立的数据库的备份,不能即时体现数据库记录状态,比如记录的编辑和增删.

AdOpenKeyset = 1 ''可上下滚动的游标,给打开的记录创建了一个关键字列表,类似记录集的描述,访问的时候才去取得数据值,就是说可以即时看到修改信息,但是不能即时得到数据是否删除的信息,因为这个关键字列表是事先初始化好的.AdOpenDynamic = 2 ''完全可滚动,可得到数据的最新状态,执行效率也会有所降低.

AdOpenStatic = 3 '' 完全可滚动,但是和adOpenKeyset类似 ,它先将数据库备份文件之后进行操作.可以断开数据库连接后继续使用.

Page 47: VB 中的 ADO 对象编程

ADO 锁的类型有四种 : AdLockReadOnly = 1'' 只读锁 , 不能操作记录

AdLockPessimistic= 2''悲观锁 , 操作者打开之后立即上锁 ,直到修改完成或者放弃修改为止 , 此时其他人无法编辑 .

AdLockOptimistic= 3''乐观锁 ,当记录将要被更新的时候才开始上锁 ,但是不能保证在提交修改之前是否有人改动过 .

AdLockBatchOptimistic= 4''批量乐观锁 ,SQL server中要使用它 , 必须打开一个可上下滚动的游标 , 如 adOpenKeyset,adOpenStatic.

Page 48: VB 中的 ADO 对象编程

2.Connection 对象的 Execute 方法  语法 :

Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)  参数说明 : CommandText 一个字符串 ,返回要执行的 SQL 命令 ,表名 ,存储过程或指定文本 .   RecordsAffected 可选项 ,Long 类型的值 ,返回操作影响的记录数 .   Options 可选项 ,Long 类型值 ,指明如何处理 CommandText 参数 .

Page 49: VB 中的 ADO 对象编程

使用 connection 的 execute 方法返回记录集:

dim cn as new adodb.connectiondim rs as new adodb.recordsetDim cnstring$,strsql$Cnstring=“driver={SQL Server};server=127.0.0.1;da

tabase=student;uid=sa;pwd=”Strsql =“select * from 基本情况 where 班级 =‘05网

一’ or 班级 =‘05网二’”Cn.open cnstringSet Rs=cn.execute (strsql)

Page 50: VB 中的 ADO 对象编程

3. 使用 Command 对象的 Execute 方法执行 CommandText 属性中设置的 SQL 命令 ,返回查询记录集 .Command 对象的 Execute 方法的语法如下 :

   Command.Execute RecordsAffected, Parameters, Options ' 不返回记录集或者 Set Rscordset=

command.Execute(RecordsAffected,Parameters,Options) ' 返回记录集

   CommandText 的语法为 :   Command.CommandText=stringvariable  其中 : stringvariable 为字符串变量 ,包含 SQL 语句 ,表名或存储过程 .

Page 51: VB 中的 ADO 对象编程

使用 command 对象 的 execute 方法返回记录集:dim cn as new adodb.connectiondim rs as new adodb.recordsetDim cmd as new adodb.commandDim cnstring$,strsql$Cnstring=“driver={SQL Server};server=127.0.0.1;dat

abase=student;uid=sa;pwd=”Strsql =“select * from 基本情况 where 班级 =‘05网

一’ or 班级 =‘05网二’”Cn.open cnstringcmd.activeconnection=cncmd.commandtext=strsqlSet Rs=cmd.execute

Page 52: VB 中的 ADO 对象编程

使用记录集 reordset

   (a) 添加新的记录 :  在 ADO 中添加新的记录用的方法为 :AddNew 它的语法为 :   Recordset.AddNew FieldList, Values   Recordset 为记录集对象实例   FieldList 为一个字段名 ,或者是一个字段数组 .   Values 为给要加信息的字段赋的值 ,如果 FiledList 为一个字段名 ,那么 Values 应为一个单个的数值 ,假如 FiledList 为一个字段数组 ,那么 Values 必须也为一个个数、类型与 FieldList 相同的数组 .  用完 AddNew 方法为记录集添加新的记录后 ,应使用 UpDate 将所添加的的数据存储在数据库中 .

Page 53: VB 中的 ADO 对象编程

(b) 删除记录  在 ADO 中删除记录集中的数据的方法为 :Delete 方法 ,这与 DAO 对象的方法相同 ,但是在 ADO中它的能力增强了 ,可以删掉一组记录了 .  它的语法如下 :   Recordset.Delete AffectRecords  其中的 ,AffectRecords 参数是确定 Delete方法作用的方式的 ,它的取值如下 :   adAffectCurrent 只删除当前的记录   adAffectGroup 删除符合 Filter 属性设置的那些记录 .为了一次能删除一组数据 ,应设置Filter 属性 .

Page 54: VB 中的 ADO 对象编程

(c) 查询记录  在 ADO 中查询的方法很灵活 ,有几种查询的方法 .  实际上记录集返回的是一个从数据库取回的查询结果集 .因此有三种打开方法 :

•一种使用记录集的 Open 方法 ,•另一种是用 Connection 对象的 Execute 方法 .•使用 Command 对象的 Execute 方法执行 CommandText属性中设置的 SQL 命令 ,返回查询记录集 .

将记录集与数据绑定控件进行绑定,即可显示记录信息。   

Page 55: VB 中的 ADO 对象编程

常见步骤:1. 打开 Connection 对象

Dim cn As ADODB.Connection’声明 ADODB.Connection 对象变量Dim strcn As String’声明存放连接串的字符串变量Set cn= New ADODB. Connection’ 实例化 Connection 对象’生成连接串( ConnectionString)strcn=" driver={SQL Server};server=127.0.0.1;database=student;uid=sa;pwd=”

’调用 Connection 对象的方法 Open 连接数据源 Cn.open strcn

Page 56: VB 中的 ADO 对象编程

2. 创建 Command 对象 Dim cmd As ADODB.Command

’ 实例化 Command 对象 Set cmd=New ADODB. Command

Page 57: VB 中的 ADO 对象编程

3. 执行查询以 Command 对象为例。 Dim rs As New ADODB.Recordset

Set cmd.ActiveConnection=cn’绑定激活的 Connection对象实例cmd.CommandText=“SELECT * from s”’生成 SQL脚本Set rs=cmd.Execute’ 执行查询

上述的代码仅仅是一种查询途径,此外, ADO 的 Connection 对象的 Execute 方法和 Recordset 对象的 Open 方法也提供了查询能力。返回的结果可以被保存在一个 Recordset对象实例中以便后续的数据处理和操纵。

Page 58: VB 中的 ADO 对象编程

4. 显示和操纵数据rs.MoveFirstDo While Not rs.EOF ’判断 EOF标记属性( Endoffile)

Print rs!sno + rs!sname + rs!sex + rs!class + rs!birthday + rs!telephone +rs!address +rs!email ‘输出记录的值

rs.MoveNext’将游标指针移到下一条记录

Loop 访问 recordset 对象字段的方法:Rs(“学号” )

Rs!学号

Rs(0)

Rs.fields(0)

Rs.fields(“学号” )

Page 59: VB 中的 ADO 对象编程

5. 更新记录 使用 Recordset 对象来完成 Update 操作。

rs.Close’关闭之前建立的结果集’打开新的结果集,具有写操作权限rs.Open“s”,cn,adOpenDynamic,adLockOptimisticrs.MoveFirst’虽无必要,但可能是一个良好的习惯rs!sname=“张三” ’对相应字段赋予新值rs.Update’ 在物理存储上生效

除了 Update 以外,写操作还包括 AddNew(添加一条新记录)和 Delete(删除一条新记录)。

需要注意的是,当使用 Recordset 对象完成写操作时,需要预先指定 Recordset 对象实例非只读。

Page 60: VB 中的 ADO 对象编程

6. 收尾工作 如果不做的话,通常 VisualBasic会自

动释放和回收资源。但一个合格的程序员,应养成良好的回收习惯。

rs.CloseSet rs=NothingSet cmd=Nothingcn.CloseSet cn=Nothing