Presentation is loading. Please wait.

Presentation is loading. Please wait.

第13章 数 据 库 本章要点: 数据库的基本概念 可视化数据管理器 使用ADO数据控件访问数据库.

Similar presentations


Presentation on theme: "第13章 数 据 库 本章要点: 数据库的基本概念 可视化数据管理器 使用ADO数据控件访问数据库."— Presentation transcript:

1 第13章 数 据 库 本章要点: 数据库的基本概念 可视化数据管理器 使用ADO数据控件访问数据库

2 引言 随着科学技术和社会经济的飞速发展,人们掌握的信息量急剧增加,要充分地开发和利用这些信息资源,就必须有一种技术能对大量的信息进行识别、存储、处理与传播。 随着计算机软硬件技术的发展,20世纪60年代末,数据库技术应运而生,并从70年代起得到了迅速的发展和广泛的应用。 数据库技术主要研究如何科学地组织和存储数据,如何高效地获取和处理数据。 数据库技术作为数据管理的最新技术,目前已广泛应用于各个领域。

3 13.1 数据库的基本概念 数据库(DataBase,DB):--以一定方式组织并存储在一起的相互有关的数据的集合。
数据库管理系统(DBMS)—用户与数据库之间的接口,可以实现对数据的组织和管理。 数据的组织: 按组织方式的不同,分为三种模型,相应地有关系数据库;层次数据库;网状数据库。关系数据库是目前使用最多的数据库。 数据的管理: 提供对数据库使用和加工的操作,如对数据库的建立、修改、检索、计算、统计、删除等。 VB可以处理多种数据库: 如Access、FoxPro、SQL SERVER等格式的数据库。

4 13.1.1 关系数据库的结构 1. 表 将相关的数据按行和列的形式组织成二维表格即为表,表通常用于描述某一个实体。
关系数据库的结构 1. 表 将相关的数据按行和列的形式组织成二维表格即为表,表通常用于描述某一个实体。 表名称: 每个表有一个名称。 一个数据库可以有一个或多个表,各表之间存在着某种关系。 数据库名称:如ACCESS数据库文件扩展名为.mdb

5 例如: “学生.mdb” 数据库 1) “学生基本信息” 表 2)“专业” 表 3)“系” 表 学号 姓名 性别 班级 出生日期 专业编号
张涛 建98-01 001 李明 …… 王新 网99-01 005 2)“专业” 表 3)“系” 表 专业编号 专业名称 系编号 001 建筑结构 002 道桥工程 …… 006 软件工程 003 系编号 系名称 001 土木工程 002 城市建设 003 计算机

6 2. 表的结构 记录: 表中的每一行称为一个记录。同一个表不应有相同的记录。 字段: 表中的每一列称为一个字段。 字段名: 每个字段一个名称。 字段类型: 每个字段一种类型。 数据项:记录中的某字段值称 表的结构按字段定义。 显然,在一个表中,记录的顺序和字段顺序不影响表中的数据信息。

7 例如,前面的各表可以定义如下: 表名 字段名 字段类型 字段长度 学生基本信息 学号 Text 9 姓名 10 性别 2 班级 7 出生日期 Date 8 专业编号 3 专业 专业名称 20 系编号 系名称

8 3. 表中的关键字 候选关键字: 如果表中的某个字段或多个字段组合能唯一地确定一个记录,称该字段或多个字段组合为侯选关键字。侯选关键字可以有多个。 如“学生基本信息”表中的“学号”可以作为侯选关键字,因为对于每个学生来说,学号是唯一的。 一个表可以有多个侯选关键字,但只能有一个关键字作主关键字。 关键字中的每一个值必须是唯一的,且不能为空值(Null)。

9 4. 表间的关联 按照某一个公共字段建立的一个表中记录同另一个表中记录之间的关系。如“学生基本信息”表与“专业”表之间通过“专业编号”字段建立关系。 这种关系分为一对一、一对多(或多对一)、多对多关系。常用的是一对多(或多对一)关系,例如,对于“专业”表中的每一个专业编号,在“学生基本信息”表中都有多条记录具有相同的专业编号,因此,“专业”表中的专业编号与“学生基本信息”表的专业编号之间是一对多的关系。

10 5. 外部键 设某个字段或字段的组合F不是表A的关键字,如果F与另一个表B的主关键字相对应,则称F为表A的外部键。 外部键与主关键字通常是多对一的关系。例如,“学生基本信息”表中的“专业编号”可以定义为外部键,它与“专业”表中的“专业编号”(主关键字)相关联。 外部键的值应当是主关键字值的子集,或者为空(Null)值。例如,“学生基本信息”表中的专业编号只能是专业表中已经存在的专业编号,或者是空值。

11 6. 索引 索引是为了加速查找引入的。索引和一本书的目录类似,在书本的目录上有章节名称和页号,在索引文件上相应地也有索引关键字和指针。索引关键字按特定的顺序排序,指针指向表中的记录。 查找数据时,数据库管理系统先从索引文件上根据索引关键字找到信息的位置(指针),再根据指针从表中读取数据。 索引关键字(或索引字段)既可以是一个字段,也可以是多个字段的组合。 在一个表中可以建立多个索引,但只能有一个主索引,主索引的索引关键字的值在整个表中不允许出现重复,且不能为空值。

12 例如,要按学生的学号快速检索学生基本信息,可以在“学生基本信息”表中以“学号”为索引关键字建立一个索引,取名为“xh”。
通常,只有当被索引的字段中的数据经常被查询时,才需要对表创建索引。索引将占用磁盘空间,并且降低添加、删除和修改记录的速度。在多数情况下,索引所带来的检索数据的速度优势,将大大超过它的不足之处,然而,如果应用程序非常频繁地更新数据,或磁盘空间有限,那么最好限制索引的数量。

13 13.1.2 数据访问对象模型 在VB中,要对数据库进行访问,需要通过数据访问对象进行,数据访问对象包括:
数据访问对象模型 在VB中,要对数据库进行访问,需要通过数据访问对象进行,数据访问对象包括: 1. DAO:Data Access Object--数据访问对象 2. RDO:Remote Data Object--远程数据对象 3. ADO:ActiveX Data Object--ActiveX数据对象 ADO是DAO/RDO的后继产物,它扩展了DAO和RDO所使用的对象模型,包含较少的对象,更多的属性、事件和方法。 通过ADO可以访问各种各样的数据源。

14 结构化查询语言(SQL) 利用结构化查询语言(Structured Query Language,SQL)可以实现对数据库的检索、排序、统计、修改等多种操作。 例如,下面是一个用来查询信息的SQL语句: Select 系.系名称,学生基本信息.学号, 学生基本信息.姓名,学生基本信息.班级 From 专业,系,学生基本信息 Where 学生基本信息.班级 = '建98-01' And 学生基本信息.专业编号=专业.专业编号 And 专业.系编号=系.系编号

15 13.2 可视化数据管理器 Visual Basic提供了一个非常方便的数据库操作工具,即可视化数据管理器(Visual Data Manager),使用可视化数据管理器可以方便地建立数据库、添加表、对表进行修改、添加、删除、查询等操作。

16 启动可视化数据管理器 打开方法:外接程序→可视化数据管理器 子窗口区 菜单栏 工具栏 状态栏

17 13.2.2 新建数据库 文件→ 新建→Microsoft Access→Verson 7.0 MDB →确定数据库文件保存位置及名称
新建数据库 文件→ 新建→Microsoft Access→Verson 7.0 MDB →确定数据库文件保存位置及名称 显示: 数据库窗 口 SQL语句窗口 数据库窗口: 列出数据库的常用属性。 SQL语句窗口: 输入、执行、保存SQL语句。

18 打开数据库 打开方法: 文件→打开数据库→Microsoft Access

19 添加表和修改表 1)在数据库窗口快捷菜单中选择“新建表”项 2)在打开的“表结构”对话框添加字段和索引

20 13.2.5 添加、删除和修改数据 1. “VisData”窗口的工具栏 用于确定记录集的类型和数据的显示方式。 表类型 动态集类型
添加、删除和修改数据 1. “VisData”窗口的工具栏 用于确定记录集的类型和数据的显示方式。 表类型 动态集类型 快照类型 使用Data控件 不使用Data控件 使用DBGrid控件 开始事务 回滚当前事务 提交当前事务

21 (1) 记录集类型按钮组 记录集对象(Recordset对象) 指来自基本表或查询结果的记录全集。VB使用记录集对象访问数据库中的记录。有三种记录集类型: 1)表类型(Table): 直接更新数据表中的数据。 2)动态集类型(Dynaset): 更新操作先在内存中进行。 3)快照类型(Snapshot): 数据仅供读取。 数据管理器窗口的工具栏提供了三个按钮,用于确定对记录集的访问方式。

22 (2) 数据显示按钮组 在数据库窗口中用鼠标右击表,选择“打开”命令,可以打开一个数据编辑窗口,在该窗口中可以进行表数据的添加、编辑等操作。数据显示按钮组用于控制在数据编辑窗口中显示数据的形式。 1)在新窗体上使用Data控件:使用Data控件来控制记录集的滚动。

23 2)在新窗体上不使用Data控件:不使用Data控件,而是使用滚动条来控制记录集的滚动。
3)在新窗体上使用DBGrid控件:使用DBGrid控件显示数据。

24 (3) 事务方式按钮组 事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做。 例如,进行银行转帐时,需要执行两步操作:从帐号A中取出一万元;将取出的一万元存入帐号B。这两个操作就必须定义成一个事务,否则,如果在执行第一步操作后出现故障,则数据库中的数据(存款余额)将处于不一致状态。 在执行一个事务时,如果事务中的所有操作全部正常完成,则可以通过提交事务确认所做的修改;如果在事务的执行过程中出现故障,则可以撤销事务中已经执行的操作,保证事务中的操作全部没有做。

25 事务方式按钮组中的各按钮的作用: 1)开始事务:单击工具栏的 按钮,开始一个新的事务。 2)回滚当前事务:单击工具栏的 按钮,撤消自开始事务以来对数据库所做的一切修改。 3)提交当前事务:单击工具栏的 按钮,确认自开始事务以来对数据库所做的修改,原有数据将不能恢复。

26 2. 数据的添加、删除和修改 在数据库窗口中右击表名打开 可以:添加、编辑、删除、关闭、排序、过滤器、移动、查找

27 13.2.6 查询数据 1. 使用查询生成器 利用可视化数据管理器中的“查询生成器”可以很方便地生成、查看、执行和保存SQL查询。
建立查询语句的具体步骤如下: 1)打开“VisData”窗口的“实用程序”菜单,选择“查询生成器”命令,打开“查询生成器”对话框; 2)选择要查询的“表”,指定要显示的所有字段; 3)构造查询条件。

28 查询生成器:

29 查询生成器各按钮作用: 运行:查看查询结果。单击该按钮会打开一个对话框,询问“这是SQL传递查询吗?”,回答“否”显示查询结果。
复制:把生成的SQL语句复制到SQL语句窗口。 保存:将生成的SQL语句按指定的一个名称保存。如保存为“女生信息”。 清除:清除所有设置,回到初始状态。 关闭:关闭查询生成器。

30 2.使用SQL语句 (1) Select语句 Select [ALL|DISTINCT] 字段名表 From 表名 [Where 条件] [Order By 排序字段 [ASC|DESC],…] 功能: 从指定的表中选出满足条件的记录,记录中包含指定的字段。 参数: ALL: 缺省值,表示要显示查询到的所有记录。 DISTINCT: 在显示查询结果中如果有多个相同的记录,只取其中的一个。使用DISTINCT可以保证查询结果每一条记录的唯一性。

31 字段名列表:指定要在查询结果中包含的字段名,具体形式为:表名
字段名列表:指定要在查询结果中包含的字段名,具体形式为:表名.字段名,各项之间用逗号隔开。如果选择所有字段,则不用一一列出字段名,只需写成:表名.*,如果只对一个表进行查询,则“表名”和随后的圆点可以省略。 表名:指定所要查询的表,可以指定多个表,各表名之间用逗号隔开。 条件:指定查询的条件。 排序字段:将查询结果按该字段排序。 ASC、DESC:指定ASC则按升序排序,指定DESC则按降序排序。缺省值为ASC。

32 例:查询“学生基本信息”表中所有男生记录,查询结果只包括班级、学号和姓名字段,相应的Select语句如下:
学生基本信息.姓名 From 学生基本信息 Where 学生基本信息.性别 = '男' 对于单个表的查询,可以省去各字段名前面的表名,以上Select语句可以简写成: Select 班级,学号,姓名 Where 性别 = '男'

33 例:显示“学生基本信息”表中男生的所有信息,相应的Select语句如下:
From 学生基本信息 Where 性别 = '男‘ 例:显示所有学生的学号、姓名和所在的专业名、系名,则需要从“学生基本信息”表、“专业”表和“系”表中查询,相应的Select语句如下: Select 学生基本信息.学号,学生基本信息.姓名, 专业.专业名称,系.系名称 From 学生基本信息,专业,系 Where 学生基本信息.专业编号=专业.专业编号 And 专业.系编号=系.系编号

34 例:设有一个“学生成绩”表,包含学号、姓名、数学成绩、英语成绩四个字段。使用Select语句实现各种统计、汇总。
统计该一共有多少名学生: Select Count(*) As 总人数 From 学生成绩 统计一共有多少名数学成绩及格的学生: Select Count(*) As 及格人数 From 学生成绩 Where 数学成绩 >= 60 求所有学生的数学平均成绩和英语平均成绩: Select Avg(数学成绩) As 数学平均成绩, Avg(英语成绩) As 英语平均成绩 From 学生成绩

35 求所有学生的数学成绩的总和和英语成绩的总和:
Select Sum(数学成绩) As 数学总成绩, Sum(英语成绩) As 英语总成绩 From 学生成绩 求英语最高分和最低分: Select Max(英语成绩) As 英语最高分, Min(英语成绩) As 英语最低分

36 (2) Insert语句 使用Insert语句可以向一个表中插入记录。 Insert语句可以有两种形式。 形式一: INSERT INTO 表名 [(列名1, … , 列名n)] VALUES (值1, 值2, ..., 值n) 功能:将一系列的值作为一条记录插入到指定的表的指定列中。 形式二: INSERT INTO 表名 [(列名1, , … ,列名n)] SELECT子查询 功能:将一个子查询结果插入到指定的表中。 如果省略列名,则表示要向所有列插入数据。

37 例:设在“学生”数据库中有一个“新系”表,下面的Insert语句表示向“新系”表插入一条新记录,“系编号”字段值为“007”,“系名称”字段值为“建筑系”:
Insert Into 新系 (系编号,系名称) Values ('007', '建筑系') 例:从“新系”表中选择“系编号”为“005”的记录,将其“系编号”、“系名称”插入到“系”表中: Insert Into 系 Select 系编号,系名称 From 新系 Where 新系.系编号='005' 例:从“新系”表中选择所有记录,并将其添加到“系”表中: Insert Into 系 Select 系编号,系名称 From 新系

38 (3) Delete语句 Delete语句可以从一个表中删除指定的记录,Delete语句格式如下: DELETE FROM 表名 [WHERE 删除条件] WHERE子句:用于指定只删除满足条件的记录。 省略WHERE子句:删除指定表的所有记录。 例:从“新系”表中删除所有“系编号”大于“005”的记录: Delete From 新系 Where 系编号>='005' 例:删除“新系”表中的所有记录: Delete From 新系

39 (4) Update语句 使用Update语句可以更改表中一个或多个记录的列值,Update语句格式如下: UPDATE 表名 SET 列名1=值1 [, … , 列名n=值n ] [WHERE 更新条件] 例:假设在某“职工工资”表中包含“姓名”、“性别”、“基本工资”、“奖金”、“实发工资”字段,现要给所有女职工增加2%的基本工资。可以使用以下语句: Update 职工工资 Set 基本工资 = 基本工资 * 1.02 Where 性别 = '女' 在增加基本工资之后计算实发工资: Update 职工工资 Set 实发工资 = 基本工资 + 奖金

40 数据窗体设计器 将数据库中的数据或查询结果显示在界面上。 在当前工程中建立数据窗体: 实用程序→数据窗体设计器

41 对话框中各选项作用如下: 1)窗体名称:设置要添加到当前工程中的窗体的名称。Visual Basic在输入的窗体名称前自动加上“frm”做为实际生成的窗体名称。 2)记录源:选择用于创建窗体所需要的记录源。在下拉列表中列出了当前可用的所有表名和查询名,用户可以从该列表中选择一个表或查询。也可以直接输入一个新的SQL语句。 3)可用的字段:列出指定的记录源上的所有可用的字段。 4)“>”按钮:将选择的字段从“可用的字段”列表移到“包括的字段”列表。 5)“>>”按钮:将“可用的字段”列表中的所有字段移到“包括的字段”列表。

42 6)“<<”按钮:将“包括的字段”列表中的所有字段移到“可用的字段”列表。
7)“<”按钮:将选择的字段从“包括的字段”列表移到“可用的字段”列表。 8)包括的字段:列出要在窗体上包含的字段。通过单击列表右侧的“▲”按钮和“▼”按钮可以调整列表中字段的位置,列表顺序决定了字段在窗体上的显示次序。 9)“生成窗体”:单击该按钮按所做的选择在当前工程中添加一个数据窗体。

43 例如: TextBox控件 Data控件

44 13.3 使用ADO数据控件访问数据库 ADO: ActiveX Data Object(ActiveX数据对象),它是Microsoft提供的最新的数据访问技术,是一组优化的访问数据的专用对象集。 ADO访问数据是通过OLE DB来实现的。 使用ADO提供的编程模型可以访问几乎所有数据源。 使用ADO数据控件可以方便快捷地建立与数据源的连接。 ADO本身不能直接显示记录集中的数据,它必须通过与之相绑定的控件来实现数据的显示。 能与ADO 数据控件进行绑定的控件被称为数据绑定控件。如文本框。

45 ADO数据控件 1. ADO数据控件的添加 工程部件在“控件”选项卡上选择“Microsoft ADO Data Control 6.0(OLEDB)”选项。 将ADO数据控件添加到工具箱中。可以像添加普通控件一样将其添加到任何容器上。

46 2. ADO数据控件的属性 设置ADO控件的属性可以快速地建立和数据库的连接。 方法一:在控件的属性页中对属性进行设置。 方法二:在属性窗口中直接设置其属性。

47 1)连接字符串:包含了用于与数据库连接的相关信息,对应于ConnectionString属性。
在属性页中设置连接字符串:

48 设置“数据库连接属性”对话框—选择提供程序

49 设置“数据库连接属性”对话框—设置连接信息

50 在属性窗口设置连接字符串: 生成的连接字符串: "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source=D:\mydb\学生.mdb" 在属性窗口设置连接字符串: 例如: Adodc1.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;

51 在 “属性页”中设置记录源: CommandType RecordSource CommandText 8 – adCmdUnknown
2)记录源。记录源确定了具体可以访问的数据,这些数据构成了记录集对象Recordset。 在 “属性页”中设置记录源: CommandType RecordSource CommandText 8 – adCmdUnknown 1 – adCmdText 2 - adCmdTable 4 – adCmdStoredProc

52 3)Recordset属性:ADO数据控件的Recordset属性实际上是一个对象,即Recordset对象(也称记录集对象),因此有其属性和方法。Recordset对象包含了从数据源获得的数据(记录)集,使用它可以在数据库中查询、添加、修改和删除数据。 4)BOFAction属性:返回或设置一个值,指示在BOF属性为True时ADO数据控件进行什么操作。有两种选择: 0 - adDoMoveFirst:缺省设置。将第一个记录作为当前记录。 1 - adStayBOF:将当前记录位置定位在第一个记录之前。记录集的BOF值保持True,这时禁止ADO数据控件上的 按钮。

53 5)EOFAction属性:返回或设置一个值,指示在EOF属性为True时ADO数据控件进行什么操作。有三种选择:
0 - adDoMoveLast:缺省设置。保持最后一个记录为当前记录。 1 - adStayEOF:将当前记录位置定位在最后一个记录之后。记录集的EOF值保持True,这时禁止ADO数据控件上的 (Move Next)按钮。 2 – adDoAddNew:移过最后一个记录时自动添加一个新记录。

54 13.3.2 数据绑定控件 数据绑定控件是任何具有“数据源”属性的控件,用于显示由数据控件所确定的记录集中的数据。
数据绑定控件 数据绑定控件是任何具有“数据源”属性的控件,用于显示由数据控件所确定的记录集中的数据。 绑定控件、数据控件和数据库之间的关系如下: 绑定控件 数据控件 数据库 如: 文本框(TextBox)、标签(Label)、 图片框(PictureBox)、图像框(Image)、 列表框(ListBox)、组合框(ComboBox)、 复选框(CheckBox)、 数据列表(DataList)、数据网格(DataGrid)

55 要使数据绑定控件能够显示数据库记录集中的数据,通常首先在设计时或在运行时设置这些控件的两个属性:
DataSource属性: 返回或设置一个数据源,通过该数据源,数据绑定控件被绑定到一个数据库。 DataField属性: 返回或设置数据绑定控件将被绑定到的字段名。

56 设计界面: Text1 Text2 Text3 Text4
【例13-1】利用 “学生”数据库中的数据,用文本框显示“学生基本信息”表的班级、学号、姓名、性别。使用命令按钮实现记录的向前、向后移动。 设计界面: Text1 Text2 Text3 Text4

57 运行时: 单击“上一个”按钮显示上一个记录,当显示到第一个记录时,继续单击“上一个”按钮,则该按钮变为无效,而把焦点定位到“下一个”按钮。 单击“下一个”按钮显示下一个记录,当显示完最后一个记录后,再单击“下一个”按钮,则该按钮无效,焦点定位到“上一个”按钮。 文本框只用于浏览数据,不允许修改。 不显示ADO数据控件。

58 设计步骤: 1)新建一个标准EXE工程,打开“部件”对话框,选择“Microsoft ADO Data Control 6.0(OLEDB)”,向工具箱中添加一个ADO数据控件,并将其添加到窗体上,使用默认名称Adodc1。设置其Visible属性为False。 2)在Adodc1控件的属性页的“通用”选项卡上生成连接字符串如下: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\mydb\学生.mdb;Persist Security Info=False 3)在Adodc1控件的属性页的“记录源”选项卡上选择命令类型为“2 - adCmdTable”,设置表名称为“学生基本信息”

59 4)添加其他控件,按下表设置各控件的主要属性
控件名 属性名 属性值 Text1 Datasource Adodc1 DataField 班级 Locked True Text2 学号 Text3 姓名 Text4 性别

60 5)编写各命令按钮的单击事件过程。 Private Sub Command1_Click() ' “上一个”按钮 Command2.Enabled = True If Adodc1.Recordset.BOF Then Command1.Enabled = False Command2.SetFocus Else Adodc1.Recordset.MovePrevious End If End Sub

61 Private Sub Command2_Click() ' “下一个”按钮
Command1.Enabled = True If Adodc1.Recordset.EOF Then Command2.Enabled = False Command1.SetFocus Else Adodc1.Recordset.MoveNext End If End Sub Private Sub Command3_Click() ' “退出”按钮 End

62 【例13-2】利用“学生”数据库中的数据,使用表格控件浏览数据库中的数据。在表格中显示系名称、专业名称、班级、学号、姓名,性别。
设计界面:

63 设计步骤如下: 1)新建一个标准EXE工程,向窗体上添加一个ADO数据控件,使用默认名称Adodc1。 2)设置Adodc1的Align属性为“2 - vbAlignButtom”,使其填充窗体底部。 3)在Adodc1控件的属性页的“通用”选项卡上生成连接字符串如下: Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\mydb\学生.mdb; Persist Security Info=False

64 4)在Adodc1控件的属性页的“记录源”选项卡上选择命令类型为“1 – adCmdText”,设置命令文本为以下查询语句:
Select 系.系名称,专业.专业名称, 学生基本信息.班级,学生基本信息.学号, 学生基本信息.姓名,学生基本信息.性别 From 专业,系,学生基本信息 Where 专业.系编号=系.系编号 And 专业.专业编号=学生基本信息.专业编号

65 5)打开“部件”对话框,选择“Microsoft DataGrid Control 6
5)打开“部件”对话框,选择“Microsoft DataGrid Control 6.0(OLEDB)”,向工具箱中添加一个DataGrid控件,并将其添加到窗体上,使用默认名称DataGrid1。 6)设置DataGrid1控件的Align属性为“1 - vbAlignTop”,其填充窗体顶部;设置其DataSource属性为Adodc1。

66 7)运行工程,查询结果如下:

67 Recordset对象 Recordset 对象也称记录集对象。 Recordset 对象包含了从数据源获得的数据(记录)集,使用它可以实现对数据库中数据的多种操作,如查询、添加、修改和删除数据等。

68 1.Recordset对象的属性 1)AbsolutePosition属性:指定Recordset对象当前记录的序号位置。 例:将记录集的当前记录定位在第3条。 Adodc1.Recordset.AbsolutePosition = 3 2)Bookmark属性:返回Recordset对象中当前记录的书签,或者将Recordset对象的当前记录设置为由有效书签所标识的记录。 例:保存Recordset对象当前记录位置: a = Adodc1.Recordset.Bookmark 注意, a应为Variant类型。当改变了记录集对象的当前记录后,可以使用以下语句返回原来的记录位置: Adodc1.Recordset.Bookmark = a

69 3)BOF、EOF属性: 如果当前记录位于Recordset对象的最后一个记录之后,则EOF值为True,否则为False。 如果当前记录位于Recordset对象的第一个记录之前,则BOF值为True,否则为False。 打开记录集时,当前记录位于第一个记录(如果有),并且BOF和EOF属性值被设置为False。 如果记录集中没有记录,BOF和EOF属性值被设置为True。 可以使用BOF和EOF属性来确定Recordset对象是否包含记录,或者判断Recordset对象所指定记录集的边界。

70 4)CursorType 属性:设置或返回在 Recordset 对象中使用的游标类型。见P287表13-6。
5)RecordCount属性:指示Recordset对象中记录的总数。 6)Fields属性:是一个集合,包含Recordset对象的所有Field对象。每个Field对象对应于记录集的一列。使用Field对象的Value属性可以设置或返回当前记录的数据。 例:设窗体上有一个Adodc1控件,显示其Recordset对象当前记录的“姓名”字段的内容: Print Adodc1.Recordset.Fields("姓名").Value

71 例:在窗体上显示当前记录的前两个字段的内容,代码为:
Print Adodc1.Recordset.Fields(0).Value Print Adodc1.Recordset.Fields(1).Value 7)LockType属性:指示当前用户对记录或表进行编辑时对记录的锁定类型。所谓“锁定”是指记录或表的一种状态,这种状态使得除当前正在编辑记录或表的用户之外,其余用户对该记录或表的访问都是只读的。 见P288表13-7。

72 2. Recordset对象的方法 1) MoveFirst、MoveLast、MoveNext、 MovePrevious方法 MoveFirst:将当前记录指针移到第一条记录。 MoveLast:将当前记录指针移到最后一条记录。 MoveNext:将当前记录指针移到后一条记录。 MovePrevious:将当前记录指针移到前一条记录。 例如,将当前记录指针移到前一条记录: Adodc1.Recordset.MovePrevious

73 注意: 如果编辑了当前记录,要保证在移动到另一记录之前,先使用Update方法保存修改的内容。如果没有更新就移到另一记录,则所作的修改将丢失,并且没有警告。 如果第一行是当前记录,再使用MovePrevious时,BOF属性被设为True,并且没有当前记录。如果再次使用MovePrevious,则产生一个错误,BOF仍为True。 如果最后一行是当前记录,再使用MoveNext时,EOF属性被设为True,并且没有当前记录。如果再次使用MoveNext,则产生一个错误,EOF仍为True。

74 2)Move方法 格式:Move n 功能:将当前记录向前或向后移动指定的条数 说明:n为正数时表示向后移动,n为负数时表示向前移动。 例:如果当前记录为第5条记录,则执行 Adodc1.Recordset.Move -3 后,当前记录变为第2条记录。

75 3) AddNew方法:在记录集中添加一条新记录。
说明:在调用 AddNew 方法后,新记录将成为当前记录并在调用 Update 方法后继续保持为当前记录。 例如,给“学生基本信息”表添加一条新记录: Adodc1.Recordset.AddNew Adodc1.Recordset.Fields("学号") = " " Adodc1.Recordset.Fields("姓名") = "刘海洋" Adodc1.Recordset.Fields("班级") = "建98-02" Adodc1.Recordset.Fields("性别") = "男" Adodc1.Recordset.Fields("专业编号") = "001" Adodc1.Recordset.Fields("出生日期") = #1/23/1980# Adodc1.Recordset.Update

76 4)Update方法:保存对当前记录所做的所有更改。
5)UpdateBatch方法:在批更新模式下修改 Recordset 对象时,使用该方法可将所有挂起的更改保存到现行数据库中。 6)Cancel Batch方法:取消批更新模式下记录集中所有挂起的更新。 7)Delete方法:删除当前记录,在移动到其他记录之前已删除的记录将保持为当前状态,一旦离开已删除的记录,则无法再次访问它。

77 8)Find方法:在Recordset中查找满足指定条件的记录。如果找到了满足条件的记录,则记录指针定位在找到的记录上,否则记录指针将设置在记录集的末尾。
例如,在记录集中查找姓名为“刘海洋”的记录: Adodc1.Recordset.Find "姓名='刘海洋'"

78 13.4 应用举例 【例13-3】设计一个学生信息管理系统,运行时主界面如下图所示,主界面包括三个主菜单标题:查询、维护和退出。 “查询”菜单下的子菜单项用于按指定方式查询信息, “维护”菜单下的子菜单项用于对指定的表记录进行添加、删除和修改。 运行情况见实例演示!

79 本章小结 1. 数据库的基本概念 数据库(DB);数据库管理系统(DBMS) 表;表名称;关系数据库;数据库名称
记录;字段(字段名称、类型) 关键字;表间的关联;外部键;索引 数据访问对象模型(DAO、RDO、ADO) 结构化查询语言(SQL)

80 2. 可视化数据管理器 新建数据库 打开数据库 添加表和修改表 添加、删除和修改数据 数据的查询: 使用查询生成器; 使用SQL语 SQL语句:Select;Insert;Delete;Update 数据窗体设计器

81 3. 使用ADO数据控件访问数据库 ADO数据控件的添加 ADO数据控件的属性 ConnectionString属性 CommandType属性 RecordSource属性 CommandText属性 RecordSet属性 BOFAction属性 EOFAction属性 4. 数据绑定控件 主要属性:DataSource;DataField

82 5. RecordSet对象 属性:AbsolutePosition;Bookmark;BOF;EOF;CursorType; RecordCount; Fields; LockType 方法:MoveFirst;MoveLast;MoveNext;MovePrevious;Move;AddNew ;Update ;UpdateBatch ;Cancel Batch ;Delete ;Find


Download ppt "第13章 数 据 库 本章要点: 数据库的基本概念 可视化数据管理器 使用ADO数据控件访问数据库."

Similar presentations


Ads by Google