第10章 数据库技术

更新时间:2023-08-30 02:18:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第10章 数据库技术 数据库的基本概念 可视化数据管理器 数据控件及其使用 SQL简介 ADO数据控件 数据库应用

10.1 数据库的基本概念以一定的方式组织并存储在一起,有相关联的数据 的集合称为数据库。数据库分为层次型、网状型和关系 型三种。 在关系数据库中,将数据库存储在一些二维表中,然 后通过建立各表之间的关系来定义数据库的结构。 (1) 数据表(Table):相关的数据组成的二维表格。 (2) 字段(Field):表中的每一列为一个字段,表头的内 容为各字段名称。 (3) 记录(Record):表中的每一行数据都称作该表中的 一个记录。 (4) 数据库(Database):相关的数据表的集合。 (5) 关键字

(6) 外部关键字 关系中某个属性或属性组合并非关键字,但却是另 一个关系的主关键字,称此属性或属性组合为本关系 的外部关键字。关系之间的联系是通过外部关键字实 现的。 (7) 表间的关联 数据库可以由多个表组成,表与表之间可以用不同 的方式相互关联。通过外部关键字来建立表之间的关 联。例如“学生情况表”与“成绩表”通过“学号” 公共字段 建立联系。这种关系分为一对一、一对多、多对多关 系。

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

10.3 数据控件及其使用数据控件(Data)提供了一种方便地访问数据库中数据 的方法,使用数据控件无须编写代码就可以对VB所支 持的各种类型的数据库执行大部分数据访问操作。 数据控件本身不能显示和直接修改记录,只能在与 数据控件相关联的数据绑定控件中显示各个记录。 可以作数据约束控件的标准控件有以下8种:文本框、 标签、图片框、图像框、检查框、列表框、组合框、 OLE控件。

要利用数据控件返回数据库中记录的集合,应先在 窗体上画出控件,再通过它的三个基本属性Connect、 DatabaseName和RecordSource设置要访问的数据资源。 本节先介绍如何利用数据控件建立与数据库连接, 然后介绍数据库记录的显示、修改、增加和删除的方 法。

10.3.1 数据控件的属性1.Connect属性 Connect属性确定数据控件要访问的数据库的类型。 2. DatabaseName属性 用于确定数据控件具体使用的数据库文件名,包括 路径名。 3. RecordSource 该属性用于确定具体可访问的数据,可以是数据库 中的单个表、一个存储查询、也可以是使用SQL查询 语言的一个查询字符串。

4. RecordType属性 用于确定记录集合类型,记录集合类型可以是数

据 库中的表或一个存储查询。 5. EofAction和BofAction属性 当记录集的Eof或Bof属性为True时,EofAction和 BofAction属性的设置或返回值决定数据控件要采取的 操作。

【例10.1】显示记录,设计一个窗体显示教学管理数 据库中学生情况表的内容。运行结果如图10.10所示。 具体步骤如下: (1) 在窗体中创建四个标签,并设置Caption属性分别 为“学号”、“姓名”、“性别”、“家庭住址”。 (2) 再创建四个文本框。 (3) 单击文本框text1的“Datasource”属性栏,再单击其 右边的下拉按钮,在下拉列表中选择data1;单击文本框Text1 的“DataField”属性栏右边的下拉按钮后,下拉列表中列出了 “学 生情况表”的所有字段名。从中选择“学号”。 按照同样方法可设置Text2的DataField属性值为“姓名”, Text3 的DataField属性值为“性别”,Text4的DataField属性值为“家 庭 住址”。

图10.10 窗体中控件的设置

2. Validate事件 如果移动数据控件中记录指针,并且约束控件中的 内容已被修改,此时数据库当前记录的内容将被更 新,同时触发该事件。可以在该事件中编写代码,根 据具体情况进行相应的处理。该事件过程的一般格式 为: Private sub Data1_Validate(Action As Integer,Save As Integer)

10.3.3 数据控件的常用方法 数据控件的内置功能很多,可以在代码中用数据控 件的方法访问数据控件属性。 (1) Refresh方法 该方法用来重建或重新显示与数据控件相关的记录。 在设计阶段,如果没有对数据库控件设置打开数据库 的相关属性,则装载窗体时,VB不会自动打开数据库。 可以通过代码设置有关属性,然后调用Refresh方法 使设置生效。

(2) UpdateControls方法 此方法用于从数据控件的Recordset对象中读取当前 记录,并将数据显示在相关约束控件上。因而可使用 UpdateControls方法终止用户对绑定控件内数据的修 改。 例如,将代码Data1.UpdateControls放在一个命令按 钮的Click事件中,就可实现放弃对记录修改的功能。 (3) UpdateRecord方法 当约束控件的内容改变时,如果不移动记录指针, 则数据库中的值不会改变,可通过调用UpdateRecord 方法来确认对记录的修改,将约束控件中的数据强制 写入数据库中,而不再触发Validate事件。在代码中 可以用该方法来确认修改。

10.3.4 记录集(Recordset)对象 1.记录集的分类 Recordset对象是一批记录的集合。Recordset对象在 结构上是由一系列的记录和字段组成的Recordset对象 代表的记录既可以直接从数据库里取得,也可以由查 询返回。“Data”控件中可用3类Recordset对象, Data” 3 Recordset 即 Table(表类型)、Dynaset(动态集类型)、 Snapshot(快照类型),默认为Dynaset类型。

(1) 表(Table)类

型 表类型的Recordset对象是当前数据库真实的数据 表,代表能用来添加、更新或删除记录的单个数据库 表。 (2) 动态集(DynaSet)类型 动态集类型的Recordset对象是可以更新的数据集, 代表一个数据库表或包含从一个或多个表取出的字段 的查询结果。可从Dynaset类型的记录集中添加、更新 或删除记录,并且任何改变都将会反映在基本表上。

(3) 快照(SnapShot)类型 快照类型的Recordset对象是数据表的拷贝。它记 录了在某一瞬间数据库的状态。一个快照类型的 Recordset能包含从一个或多个在同一个数据库中的 表里取出的字段,但字段不能更改。

2. 记录集的方法 使用Recordset对象的属性与方法的一般格式为: 数据控件名.Recordset.属性/方法 (1) Move方法 使用Move方法可代替对数据控件对象的4个箭头的操 作遍历整个记录集中的记录。 其语法格式为: Recordset.Move rows[,start] 或 Recordset.Move{First|Last|Next|Previous}

5种Move方法是: ① MoveFirst方法将记录指针移至第一个记录。 ② MoveLast方法将记录指针移至最后一个记录。 ③ MoveNext方法将记录指针移至下一个记录。 ④ MovePrevious方法将记录指针移至上一个记录。 ⑤ Move[n]方法将记录指针向前或向后移n个记录,n 为指定的数值。

(2) Find方法 使用Find方法可在指定的Dynaset或Snapshot类型 的Recordset对象中查找与指定条件相符的一个记录, 并使之成为当前记录。其语法格式为: Recordset.{FindFirst|FindLast|FindNext|FindPrevious} 4种Find方法是: ① FindFirst方法找到满足条件的第一个记录。 ② FindLast方法找到满足条件的最后一个记录。 ③ FindNext方法找到满足条件的下一个记录。 ④ FindPrevious方法找到满足条件的上一个记录。

本文来源:https://www.bwwdw.com/article/uyvi.html

Top