第 13章 数据库本章的学习重点
“可视化数据管理器”创建数据库和表
Visual Basic访问数据库的方法
Data控件
ADO对象
13.1 概述数据库,其实就是数据的集合,通俗地说,也就是存储数据的“仓库”,只不过该仓库是在计算机中存储,
而且数据是按照一定的格式存放的。
一些与数据库相关的概念:
1.数据库数据库是依照某种数据模型存储在计算机内的、有组织的、可共享的数据集合。按照数据的组织形式来分可以将数据库分为层次数据库、网状数据库和关系数据库。
其中关系数据库是目前应用最广泛的一种数据库。它以关系模型为基础,利用关系来描述现实世界。
13.1 概述
2.关系关系实质上是一张由行和列组成的二维表。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体与实体之间的联系。在关系数据库中,有 3种关系,即一对一关系、一对多关系和多对多关系。一个数据库可以包含多个关系即多张二维表。如一个学生成绩管理数据库中,可以有“学生信息”表、“课程信息”表和
“成绩”表。
3.记录记录是指表中的一行。一记录和行的意思是相同的。
13.1 概述
4.字段字段是表中的一列。一般字段和列所指的内容是相同的。字段是数据表表示对象的一个属性。如,学生信息”
表表示学生对象。学生有学号、姓名、专业班级、籍贯和出生日期等属性,所以该表应该有 5个字段。同一个字段的数据必须具有相同的数据类型。
5.主键主键也称主码,是数据表的一个特殊的字段或几个字段的组合。它可以唯一区分一条记录,在一个数据表中不允许有相同主键的两条记录出现。例如,在图书管理数据库中,每本图书可以有相同的书名。为了区别不同的对象,可以将图书的书号设为主键。
13.1 概述
6.索引索引是建立在数据表上的单独的物理数据库结构。按照索引的查询会提高数据检索效率。索引是表中的一个或多个字段,索引可以是唯一的,也可以是不唯一的。
13.2 数据库的建立和访问一,创建数据库可视化数据管理器是 Visual Basic提供的一个外接程序 VisData.exe,在安装 VB时被放置在 VB安装目录中,可以单独运行,也可在 VB的集成开发环境中启动,用于快速建立数据库结构并进行数据库内容的编辑。其主要功能有:
1) 新建数据库;
2) 打开已存在的数据库;
3) 建立、更新及删除数据表;建立、增加字段;
4) 建立、增加、更正、删除和查询记录;建立、增加和删除索引;
5) 整理数据库等。
13.2 数据库的建立和访问以利用可视化数据管理器创建一个“图书管理”数据库为例:
1.启动可视化数据管理器在 VB中选择“外接程序”菜单上的“可视化数据管理器”
命令,即可打开可视化数据管理器。
13.2 数据库的建立和访问
2.创建数据库在可视化数据管理器的主界面中选择“文件”菜单中的“新建( N)?” 子菜单项,在出现的下级子菜单
,Microsoft Access( M)?” 中选择,Version 7.0
MDB(7)” 子菜单,弹出“选择要创建的 Microsoft Access
数据库”对话框。选择要创建数据库的保存路径并输入扩展名为,mdb的文件名。
数据库创建好之后,在可视化数据管理器窗口中出现
“数据库窗口”和,SQL语句”两个子窗口。
13.2 数据库的建立和访问
3.创建数据表数据库创建好之后,接着要为数据库创建一个数据表。
13.2 数据库的建立和访问
4.输入数据新建的数据表是一个空表,要让数据库保存数据必须向数据表添加数据。
13.2 数据库的建立和访问二、访问数据库的方法在 VB中访问数据库的途径使用比较多的有三种:
1) 通过数据( Data)控件访问;
2) 通过数据访问对象( DAO)访问;
3) 通过 ActiveX数据对象( ADO)访问。
13.3 Data控件在 Visual Basic提供的众多访问数据库的方式中,Data
控件是最简单的一种。它是 Visual Basic用于创建和访问数据库的内部标准控件。利用 Data控件可以不使用代码完成以下功能:
1.连接本地和远程数据库;
2.访问指定的数据库表;
3.在绑定控件上显示数据表数据;
4.将对数据绑定控件中的修改保存至数据库;
5.关闭数据库。
13.3 Data控件
1,Data控件的常用属性
1) Caption属性:返回或设置 Data控件上显示的标题。
2) Connect属性:设置连接的数据库的类型。 VB提供了 7
种可访问的数据库类型,其中比较常用的有 Microsoft
Access,dBASE和 FoxPro等。默认连接的是 Access格式的数据库。
3) DatabaseName属性:返回或设置被访问的数据库的完整路径。可以在属性窗口中单击 DatabaseName属性右边的按钮,在出现的一个公用对话框中选择相应的数据库。例如要连接,E,\VB\图书管理,mdb” 数据库,则属性值设为,E,\VB\图书管理,mdb” 。
13.3 Data控件
4) DefaultType属性:返回或设置 Data 控件使用 Jet数据库还是 ODBC数据库类型。 象 Microsoft Access和 VB使用相同的 Jet数据库引擎的称为 Jet数据库,由 Jet引擎直接生成和操作,不仅灵活而且速度快;而 ODBC数据库即开放式数据库连接,包括遵守 ODBC标准的客户 /服务器数据库,
如 Microsoft SQL Server,Oracle,Sybase等,VB可以使用任何支持 ODBC标准的数据库。
5) Exclusive属性:设置是单用户(独占)方式还是多用户方式访问指定的数据库。取值为 True时是单用户方式;
为 False(缺省值)是多用户方式。
6) ReadOnly属性:设置是否以只读方式访问指定的数据库。
为 True是只读方式;为 False(缺省值)是读写方式。
13.3 Data控件
7) Recordset属性:返回或设置一个 Recordset 对象,这个对象是由一个数据控件的属性或一个已存在的
Recordset 定义的 。
8) RecordSource属性:返回或设置数据控件所链接的记录来源,可以是数据表名,也可以是查询名。在属性窗口中单击下拉箭头在列表中选出数据库中的记录来源。例如,
选择图书管理数据库中的“图书信息”表。
9) BOFAction和 EOFAction属性:在运行时用户通过单击数据控件的指针按钮可移动记录到开始或结尾,BOFAction
属性是指当用户移动到开始时程序将执行的操作,
EOFAction属性是指当用户移动到结尾时程序将执行的操作 。
13.3 Data控件
2,Data控件的常用方法
1) Refresh方法:当 DatabaseName,ReadOnly,Exclusive
或 Connect属性的设置值发生改变,可以调用 Refresh方法打开或重新打开数据库,更新数据控件上显示的内容。
2) UpdateRecord方法:保存绑定控件的当前值。
3) UpdateControls方法:可以从数据控件的记录集中再取回原先的记录内容,即恢复原先值。当在与数据控件链接的控件中修改了记录内容,可以用 UpdateControls方法使这些控件显示恢复原来的值。
13.3 Data控件
3,Data控件的常用事件
1) Reposition事件:该事件是当某一个记录变成当前记录之后触发。通常利用该事件对当前记录的数据内容进行计算。
2) Validate事件:该事件与 Reposition事件不同,是当某一记录成为当前记录之前,或是在 Update,Delete、
Unload或 Close操作之前触发
13.3 Data控件
4,Recordset对象
VB中的 Data控件的 Recordset属性就是一个记录集对象,
具有自己的方法和属性,利用它们可以对数据库中的记录进行各种处理。
Recordset常用的属性和方法有:
1) AbsolutePostion属性:返回当前指针值,如果是第 1条记录,其值为 0。该属性为只读属性。
2) Bof属性:判断当前指针值是否在首记录之前,若为 True,则当前位置位于记录集的第 1条记录之前。
3) Eof的属性:判断当前指针值是否在最后一条记录之后。
4) Nomarch属性:在记录集中进行查找时,如果找到相匹配的记录,则该属性为 False,否则为 True。
13.3 Data控件
5) RecordCount属性:返回 Recordset对象中的记录个数,该属性为只读属性。在多用户环境下,RecordCount
属性值可能不准确,为了获得准确值,在读取
RecordCount属性值之前,可使用 MoveLast方法将记录指针移至最后一条记录上。
6) AddNew方法:用于添加一条新记录,新记录的每个字段如果有默认值则取默认值,如果没有则为空。
7) Delete方法:用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。
8) Edit方法:用于对可更新的当前记录进行编辑修改。
9) Find方法集合:用于查找记录,包含 FindFirst、
FindLast,FindNext和 FindRrevious4种方法。
13.3 Data控件
5,数据绑定控件将控件与数据库进行绑定可以按照以下步骤进行:
1)将数据控件添加到窗体上;
2)为数据控件设置好相关属性;
3)在窗体中添加要绑定的控件;
4)将要绑定控件的 DataSource属性设置为数据控件的
name属性值;
5)将控件的 DataField属性设置为数据表中的相应字段。
13.4 ADO
ActiveX数据对象( ActiveX Data Objects,简称 ADO)
是 Microsoft公司开发的数据库应用程序面向对象的新接口,是建立在 OLE DB底层技术之上的高级编程接口,具有更加简单、更加灵活的操作性能,具有强大的数据处理功能(如处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。大多数 VB程序员选择通过 ADO来访问包括 SQL Server、
Oracle,ACCESS 等数据库、甚至 EXCEL表格、文本文件、
图形文件和无格式的数据文件在内的任何一种 OLE DB数据源。
ADO对象模型由众多对象和集合组成,包括 Connection,
Command,Parameter,Recordset,Field,Property和
Error 7个对象和 Fields,Properties,Parameters和
Errors4个集合。
13.4 ADO
1.Connection对象
Connection对象用于建立与数据库的连接,通过连接可从应用程序访问数据源。它保存诸如指针类型、连接字符串,查询超时或连接超时和缺省数据库这样的连接信息。
所有的高级连接功能都是通过这个对象进行控制,包括事务控制、隔离级别的设置、不返回数据的 SQL语句的执行。
Connection对象的常用属性
1) ConnectionString属性:设置或返回建立连接的字符串,用于建立和数据库的连接,它包含了连接数据源所需的各种信息,在打开之前必须设置该属性。
13.4 ADO
2) ConnectionTimeout属性:设置或返回在尝试建立连接时终止尝试并生成错误之前所等待的时间。等待连接打开的时间以秒为单位,默认值为 15 秒。
3) CursorLocation属性:设置或返回用户选择的游标位置。取值为 adUseNone表示不使用游标服务;取值为 adUseClient表示使用客户端游标;取值为 adUseServer表示使用服务器端游标。
默认值是 adUseServer。
4) DefaultDatabase 属性:设置或返回连接的一个默认的数据库。如果 ConnectString中未指定数据库名称,就使用这里所指定的名称,对 SQL Server而言,其值通常是 pubs。
5) State属性:设置或返回当前连接是处于打开状态,还是处于关闭状态或中间状态。
13.4 ADO
Connection对象的常用方法
1) Open方法:打开到数据源的连接。使用 Connection
对象的 Open 方法可建立到数据源的物理连接。在该方法成功完成后连接是活跃的,可以对它发出命令并且处理结果。
2) Close方法关:闭打开的对象及任何相关对象。使用
Close 方法可关闭 Connection 对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。要将对象从内存中完全删除,可将对象变量设置为 Nothing。
3) Execute方法:用于执行指定的查询,SQL 语句、存储过程或特定提供者的文本等内容。
13.4 ADO
2,Command对象
Command对象的常用属性
1) ActiveConnection属性:所有 Command对象是基于一个已建立的 Connection对象的。本属性用来表示连接信息,
它一般是一个连接对象的名称。
2) CommandText属性:这一属性用来储存要执行的命令本身,它可以是一条 SQL命令,数据库表名或储存过程的名。
3) CommandTimeOut属性:用于确定 Command命令执行的最长等待时间(秒),缺省值为 30秒。该值设置为 0表示无时间限制。
13.4 ADO
4) Direction属性:指示所标明的是输入参数、输出参数还是既是输出又是输入参数,或该参数是否为存储过程返回的值。为 AdParamUnknown表示指示参数方向未知;为
AdParamInput表示指示输入参数,此为默认值;为
AdParamOutput表示指示输出参数;为
AdParamInputOutput表示同时指示输入参数和输出参数;
为 AdParamReturnValue表示指示返回值。
5) State属性:用于设置 Command对象的状态。状态有两种,adStateClosed=0 表示关闭,adStateOpen=1 表示打开(缺省值)。
13.4 ADO
Command对象的常用方法
1) Execute方法:执行在 CommandText 属性中指定的查询,SQL 语句或存储过程。
2) AppendChunk方法:将数据追加到 Parameter 对象。
3) Append方法:将 Parameter对象添加到 Parameters集合中。
4) Delete方法:从 Parameters集中删除 Parameter对象。
13.4 ADO
3,Recordset对象
Recordset对象的常用属性
1) Bookmark属性:书签标记,用来保存当前记录的位置。
2) CoursorType属性:指定 Recordset 对象所使用的光标类型。共有 4 种光标类型:为 0表示前滚光标,光标只能向前移动,执行效率高。是 Cursor 的默认值;为 1表示键盘光标,
光标可向前或向后移动,Recordset 记录集同步反映自它创建后其他用户所作的修改和删除,但却不能同步反映自它创建后其他用户新增加的记录;为 2 表示动态光标,光标可向前或向后滚动,任何时候 Recordset 记录集都同步反映其他用户的任何操作;为 3表示静态光标,光标可向前或向后移动,自创建后无法同步反映其他用户所做的任何操作,它的功能简单但消耗资源少。
13.4 ADO
3) LockType属性:表示编辑时记录的锁定类型。它决定了当不止一个用户试图同时改变一个记录时,Recordset 如何处理数据记录。 取值为 0 表示只读锁定,记录只读,不能更新
Recordset,为 LockType 的默认值;为 1表示悲观锁定,编辑记录开始立刻锁定,直到提交给数据提供者;为 2表示乐观锁定,一次锁定一条记录,只有调用 Update 方法提交数据时才锁定记录;为 3表示乐观的批量更新,允许同时更新多条记录。
4) Filter属性:用来设定一个过滤条件,以便对 Recordset
记录进行过滤。
5) Bof属性:判断记录指针是否到了第一条记录之前。
6) Eof属性:判断记录指针是否到了最后一条记录之后。
7) Source属性:指定 Recordset 对象的数据源,可以是一个
Command 对象名,SQL 语句、数据库表或存储过程。
13.4 ADO
8) RecordCount属性:返回 Recordset 对象的记录数,
(在使用键盘光标时,该属怀返回 的可能是不太准确的数值;一般情况下,并不用这种方法来统计 Recordset
中的记录数,因为它的性能并不稳定 )。
Rcordset 对象的方法
1) Open方法:打开一个 Recordset 对象。其语法格式为:
2) Close方法:关闭一个 Recordset 对象。 但并不从内存中删除该对象,只是无法读取其中的数据,但仍然可以读取它的属性。因此一个关闭的 Recordset 对象还可以用 Open 方法打开并保持其原有属性。
Rs.Close
Rs.Open[Source][,ActiveConnection][,CursorType][,LursorType][,Option]
13.4 ADO
3) MoveFirst方法:把 Recordset 指针指向第一行记录。
其语法格式为:
Rs.MoveFirst
MoveLast 把 Recordset 指针指向最后一条记录(该
Recordset 必须支持书签)。其语法格式为:
Rs.MoveLast
4) MovePrevious方法:把 Recordset 指针上移一行(使用前应判断 BOF 是否为真,该方法必须支持书签)。其语法格式为:
Rs.MovePreviors
5) MoveNext方法:把 Recordset 指针下移一行(使用前应判断 EOF 是否为真)。其语法格式为:
Rs.MoveNext
13.4 ADO
6) Move方法:把 Recordset 指针指向指定的记录。其语法格式为:
Move n [,start]
其中,n 为要移动的记录数,取正时表示向前(下)移动,取负时表示向后(上)移动; start 是可选参数,
表示移动的起点。
7) Addnew方法:增加一条空记录。其语法格式为:
Recordset.AddNew [FieldList,Values]
8) Delete方法:删除当前记录或记录组。其语法格式为:
Recordset,Delete [value]
13.4 ADO
9) Update方法:保存当前记录的任何变动。其语法格式为:
Recordset.Update
10) CancelUpdate方法:取消前一个 Update 方法所做的一切修改。其语法格式为:
Recordset.CancelUpdate