资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第12章 数据库编程基础,本章主要任务: 1了解数据库(重点是关系数据库)的基本概念。 2熟悉VB进行数据访问的基本方式。 3掌握Data控件和ADO Data控件的基本用法。 4熟悉使用可视化数据管理器VisData建立和维护数据库的方法。 5了解在VB中使用SQL语句的基本方式。,12.1 数据库简介,12.1.1 数据库的基本概念 1数据库 所谓数据库(Database,简称DB)就是长期存放在计算机内,以一定组织方式动态存储的、相互关联的、可共享的数据集合。 2数据库管理系统 数据库管理系统(DataBase Management System,简称DBMS)是帮助人们处理大量信息,实现管理现代化、科学化的强有力工具。 3数据库系统 一个完整的数据库系统(Database System,简称DBS)由数据库、数据库管理系统、数据库应用系统、数据库管理员(Database Administrator,简称DBA)以及用户组成。,12.1 数据库简介,12.1.2关系数据库 1关系(表) 在关系数据库中,数据以关系的形式出现,可以把关系理解成一张二维表(Table)。一个关系数据库可以由一张或多张表组成,每张表都有一个名称,即关系名。 2记录(行) 每张二维表均由若干行和列构成,其中每一行称为一条记录(Record),记录是一组数据项(字段值)的集合,表中不允许出现完全相同的记录,但记录出现的先后次序可以任意。 3字段(列) 二维表中的每一列称为一个字段(Field),每一列均有一个名字,称为字段名,各字段名互不相同。列出现的顺序也可以是任意的,但同一列中的数据类型必须相同。,12.1 数据库简介,4主键 为了提高检索效率,常将关系数据库中的某个字段或某些字段的组合定义为主键(Primary Key)。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一标识一条记录。 5索引 通常建立一个较小的表索引表,该表中只含有索引字段和记录号。通过索引表可以快速确定要访问记录的位置。,12.2 数据库的建立及其操作,12.2.1 数据库的建立 VB既可使用其它应用程序(如Orcale、Access、Excel、dBase、FoxPro等)建立的数据库,也可以通过可视化数据管理器VisData直接建立和维护多种类型的数据库。 在VB环境下,执行“外接程序”菜单中的“可视化数据管理器”命令,即可打开 “可视化数据管理器”窗口。,1确定表结构 主要是确定表中各字段的名称、类型、长度和表名。 2建立数据表 添加字段 添加索引 生成表,12.2 数据库的建立及其操作,12.2.2 数据库的基本操作 利用“可视化数据管理器”可以进行的数据库基本操作包括添加记录、编辑记录、删除记录等。 执行“文件”菜单中的“打开数据库”命令,右击“数据库窗口”中的相应表名,执行快捷菜单中的“打开”命令,1. 添加记录 2 编辑记录 3 删除记录,12.3 数据库控件,12.3.1 数据控件 1功能 数据(Data)控件相当于一个记录指针,用于指示数据库的当前记录,可以通过单击其左右两边的箭头按钮,移动这个“指针”来选择当前记录。 数据控件本身并不能显示和直接修改记录,只能在与数据控件相关联的数据约束控件中显示各个记录。 数据控件只能访问数据库、修改表中数据,不能建立新表和索引,也不能改变表结构。 2属性 (1)Connect属性 其值为一字符串,用于指定数据库的类型,缺省为“Access”,即Microsoft Access的MDB文件。 (2)DatabaseName属性 其值为一字符串,用于返回或设置数据控件的数据库的名称及位置。,12.3 数据库控件,(3)RecordsetType属性 其值为一整数,用于返回或设置记录集合的类型,其中0为表(Table)类型,1为动态集(Dynaset)类型,2为快照(Snapshot)类型,缺省为动态集(Dynaset)类型。 使用什么记录集关键取决于要完成的任务。表类型的记录集已建立了索引,适合快速定位与排序,但内存开销太大。动态集类型的记录集则适合更新数据,但其搜索速度不及表类型。快照类型的记录集内存开销最小,适合显示只读数据。 (4)RecordSource属性 其值为一字符串,用于返回或设置记录的来源,可以是数据库中的一张表的名称、一个查询的名称或一条返回记录的合法SQL语句 (5)ReadOnly属性 返回或设置一个逻辑值,用于指定数据库的打开方式,缺省为False,数据库的打开方式为读/写方式。该属性为True时,则不允许对数据进行修改。,12.3 数据库控件,(6)BOFAction属性与EOFAction属性 其值为一整数,用于指示在记录集对象的BOF或EOF属性为True时,Data控件进行什么操作。,(7)Exclusive属性 返回或设置一个逻辑值,缺省为False,此时数据库为多用户访问而打开,其它用户可以打开该数据库,并可以在它打开时访问数据。该属性设置为True时,数据库为单用户访问而打开,在它关闭前其它用户不能打开该数据库。,12.3 数据库控件,3方法 (1)Refresh方法 可以在 Data 控件上使用 Refresh 方法来打开或重新打开数据库 在多用户环境中,由于其他用户可以对数据进行修改,因此常使用Refresh方法重新显示数据,以保证用户看到的是最新数据 (2)UpdateControls方法 从一个Data控件的Recordset对象中取得当前记录,并且在与该Data控件“绑定”的控件中显示适当的数据。 使用此方法可以终止任何挂起的该Data控件的记录集对象的Edit或AddNew方法,等效于用户更改了数据之后决定取消更改 在多用户环境中,其他用户可以更新数据库的当前记录,但相应控件中的值不会自动更新,可以调用此方法将当前记录的值在相应控件中显示出来。 (3)UpdateRecord方法 当与Data控件“绑定”的控件的内容改变时,如果不移动记录指针,则数据库中的值不会改变,可通过调用UpdateRecord方法来确认对记录的修改,将相应控件中的数据强制写入数据库中,12.3 数据库控件,4事件 (1)Reposition事件 当一条记录成为当前记录时触发该事件。 (2)Validate事件 当一条不同的记录成为当前记录之前,或调用该Data控件的记录集对象的Update方法、Delete方法和Close方法之前,以及卸载窗体之前触发该事件。 Private Sub Data控件名_Validate (action As Integer, save As Integer) Action参数是一个整型数,用以判断是何种操作触发了Validate事件,也可以在Validate事件过程中重新给Action参数赋值,从而使得在事件结束后执行新的操作。 (参见表12.3) Save参数是一个逻辑值,用以判断是否与该Data控件“绑定”的控件中的内容是否被修改过。如果Validate事件过程结束时,Save参数为True则保存所做修改,为False则忽略所做修改。,12.3 数据库控件,12.3.2数据约束控件 1功能 只有通过将数据约束控件与Data控件“绑定”(Bounding)后,才能在数据约束控件中自动显示当前记录的相关字段值。 如果修改了数据约束控件中的数据,并且Data控件的RecordsetType和ReadOnly属性设置为合适的值,只要移动记录指针,就会将修改后的数据自动写入数据库。 所谓“绑定”就是指将数据控件与数据约束控件建立约束关系的过程 可以作数据约束控件的标准控件有8种:文本框、标签、图片框、图像框、检查框、列表框、组合框、OLE控件。,12.3 数据库控件,2属性 (1)DataSource属性:返回或设置一个数据源,例如某个Data控件名。 (2)DataField属性:指定一个在数据源所创建的Recordset,(3)DataChanged属性 返回或设置一个值,它指出被绑定的控件中的数据已被某进程改变,这个进程不是从当前记录中检索数据的进程。当Data控件开始移动到一个不同记录时,Validate事件将发生。如果任何被绑定的控件的DataChanged属性均为True,则Data控件自动地调用Edit和Update方法将改变内容发送到数据库中。,例12-1,12.3 数据库控件,12.3.3 记录集对象 1功能 Data控件的DatabaseName属性确定了可以访问的数据库,RecordSource属性确定的数据库中具体可以访问的记录,这些记录构成一个记录集对象Recordset,其类型由该Data控件的RecordsetType属性确定。 VB对数据库中记录的访问是通过Recordset对象实现的,使用Recordset对象的属性与方法的一般格式为: Data控件名. Recordset .属性/方法 2属性 (1)Bof属性与Eof属性 当记录指针位于首记录之前,Bof属性为True,否则为False。 当记录指针位于末记录之后,Eof属性为True,否则为False。Bof属性与Eof属性在运行阶段只读。,12.3 数据库控件,(2)Nomatch属性 在记录集中进行查找时,如果找到相匹配的记录,则该属性值为False,否则为True。 (3)RecordCount属性 返回记录集中现存记录的个数。 3方法 (1)MoveFirst、MoveLast、MoveNext 和 MovePrevious方法 移动到指定Recordset对象中的第一个、最后一个、下一个或上一个记录并使该记录成为当前记录。 还可通过Move n的方法移动Recordset对象中当前记录的位置。如果参数n大于零,则当前记录位置将向记录集的末尾移动。如果n小于零,则当前记录位置向记录集的开始移动,12.3 数据库控件,(2)FindFirst、FindLast、FindNext和FindPrevious方法 搜索Recordset中满足指定条件的第一个、最后一个、下一个或上一个记录。如果找到符合条件的记录,则该记录成为当前记录,否则当前位置将设置在记录集的末尾。 语法格式:Data控件名.Recordset.Find方法 条件”,其中“条件”为指定字段值与常量关系的字符串表达式 例如Data1.Recordset.FindFirst“姓名=张三”用于在记录集中查找“姓名”字段值等于“张三”的第一条记录。 (3)Seek方法 在表类型的记录集中从头开始搜索满足指定条件的第一个记录,并使该记录成为当前记录。 语法格式:Data控件名. Recordset.Seek 比较类型,值1,值2,其中“比较类型”可以为”=”、”=”、”、”=”和” 例如Data1.Recordset. Seek “=”, “张三”用于在表类型的记录集中查找索引字段值等于“张三”的第一条记录。,12.3 数据库控件,(4)AddNew方法 向数据库中添加记录的步骤如下: 首先,调用AddNew方法,打开一个空白记录; 然后,通过与Data控件“绑定”的相关控件给各字段赋值; 最后,单击Data控件上的箭头按钮,移动记录指针,或调用UpdateRecord方法确定所做添加。 (5)Delete方法 删除数据库中记录的步骤如下: 首先,将要删除的记录定位为当前记录; 然后,调用Delete方法; 最后,移动记录指针,确定所做删除操作。 (6)Edit方法 编辑数据库中记录的步骤如下: 首先,将要修改的记录定位为当前记录; 然后,调用Edit方法; 然后,通过与Data控件“绑定”的相关控件修改各字段值; 最后,移动记录指针,确定所做编辑操作。 (7)Close方法:用于关闭指定的数据库、记录集,并释放分配的资源。,12.3 数据库控件,12.3.4 ADO Data控件 1概述 ADO(ActiveX Data Obj
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号