模块9--数据库应用的开发_第1页
模块9--数据库应用的开发_第2页
模块9--数据库应用的开发_第3页
模块9--数据库应用的开发_第4页
模块9--数据库应用的开发_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模块9 数据库应用的开发任务1 数据库基础任务2 用Data控件访问数据库任务3 使用ADO控件访问数据库 VB具有强大的数据库操作功能,提供了包含数据管理器(Data Manager)、数据库控件(Data control)以及ADO ( ActiveX对象)等功能强大的工具,利用VB能够开发各种数据库应用系统,建立多种类型的数据库,并加以管理、维护和使用这些数据库。 VB提供了两种建立数据库的方法,分别是: (1)使用可视化数据管理器,不需要编程就可以创建数据库; (2)使用VB的DAO部件通过编程的方法创建数据库。下一页返回任务1 数据库基础任务1 数据库基础9.1.1 数据库的基础知识

2、 随着社会的发展,人们对数据库的管理经过了3个阶段。第一阶段是人工管理阶段,特点是数据不长期保存,没有软件系统对数据库进行管理,没有文件的概念,一组数据对应一个程序;第二阶段采用文件管理方式,特点是数据不再是程序的组成部分,而是有组织、有结构地构成文件的形式,形成数据文件;第三阶段是数据库管理方式,特点是对所有数据实行统一、集中、独立的管理,数据独立于程序存在,并可以提供给各类不同用户使用。 上一页下一页返回任务1 数据库基础 数据库根据数据组织方式不同而有不同的类型,较常见的有采用无向图形结构的网络模型数据库、采用树型结构的分层结构数据库以及采用二维表结构的关系型数据库。 关系型数据库是目前

3、最流行的数据库,关系型数据库把数据组织成一张或多张二维的表格,即关系表,多张彼此关联的表格群组形成数据库。可以采用现代数学理沦和方法对数据进行处理,它提供了结构化查询语言SQL,SQL语言是标准的可应用于各种不同形式的数据库的语言。上一页下一页返回任务1 数据库基础 关系型数据库使用记录、字段、数据表和数据库等术语,解释如下。 记录(Record ):每一行数据为一个记录。 字段(Field):每一列为一个字段,数据表头的每一列为字段名称。 数据表(Table):经过各个字段的分类后,每一行为一个记录,所有的记录组成的二维表格称为数据表。 数据库(Data Base):多个相关联的数据表的集合

4、。以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。 主键(Primary Key):关系数据库中的某个字段或某些字段的组合定义为主键。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一标识一条记录。 数据库管理系统(Database Managemenl System,DBMS):是操纵和管理数据库系统的软件。上一页下一页返回任务1 数据库基础 在关系型数据表中每一个字段不可再分解,也不能有名字相同的字段;每一列中的数据都有相同的数据类型;表中没有内容完全相同的行(记录)。表9-1即为常见的关系型数据表。 对关系型数据库要掌握的三点是:第一,确立数据库的结构,即建立多张表的二

5、维关系结构;第二,向表中添加具体数据;第三,对数据库的操作实现数据的管理。上一页下一页返回任务1 数据库基础9. 1. 2建立数据库 一个班级管理的数据库(bjgl)由两张数据表组成,分别为班级基本情况表(bilbak) .学生成绩表(xscj)。 班级基本情况表共有9个字段:“姓名”、“学号”、“出生年月”、“性别”、“专业”、“联系电话”、“家庭住址”、“照片”及“备注”,反映班级基本信息的数据表。结构如图9-1所示,并且已经添加了数据。 学生成绩表有4个字段: “学号”、“课程名称”、“成绩”和“学分”,用来反映学生的各科成绩信息,如图9-2所示。 上面两张表的结构已经确立,并进行了数据

6、的添加,对这两张表中的数据还要进行查询、修改和删除等操作,从而实现对班级管理和数据库的管理。上一页下一页返回任务1 数据库基础9. 1. 3建立并维护数据库表 数据库管理器,是一个可独立运行的VisData. exe。它随安装过程放置在VB目录中,可单独运行,也可以在VB开发环境中启动,用于快速建立数据库结构及数据库内容。 VB有关数据库的操作,比如数据库结构的建立、记录的添加及修改以及用ODBC连接到服务器端的数据库,如SQL Sever都可以利用此工具来完成。 在VB环境下,选择“外接程序”菜单中的“可视化数据管理器”命令,即可打开如图9-3所示的可视化数据管理器窗口,进入数据库设计界面。

7、上一页下一页返回任务1 数据库基础 1.创建多种类型的数据库 如图9-4所示,选择“文件” “新建” Microsofl Access命令,接着选择Version 7. 0MDB命令,出现“选择要创建的Microsoft Access”对活框,选择要新建数据库的路径并输入数据库名,这里输入的路径是“D ; vb”,文件名为“bjgl. mdb”,确认后,在数据管理器中出现如图9-5所示的“数据库窗口”和“SQL语句”两个子窗口,“数据库窗口”中显示数据库的结构,包括“表名”、“列名”、“索引” “SQL语句”窗口可以用于输入一些SQL命令,针对数据库中的表进行查询操作。此时使用可视化数据管理器

8、建立的数据库是Access数据库(类型名为.mdb ),可以被Access直接打开和操作,但此时新建的数据库不含任何数据表。上一页下一页返回任务1 数据库基础 从图9-5的菜单中,可以看到数据库管理器除了可以创建Access类型的数据库外,还可以创建dBase , FoxPro , ODBC等多种类型的数据库。使用几种比较流行的“索引顺序访问文件法(ISAM)”数据库,包括dBase3、 dBase4 、 FoxPro2. 0 、 FoxPro2. 5以及Paradox3和4. x,在VB中可以创建和操作所有这些格式的数据库;可以访问文本文件数据库和Excel或Lotusl-2-3电子表格文件

9、;以及 ODBC数据库(包括符合ODBC标准的客户机/服务器数据库,如Microsoft SQL Server。如果要在VB中创建真正的客户机/服务器应用程序,可以使用ODBC Direct直接把数据传递给服务器处理)。 上一页下一页返回任务1 数据库基础 如图9-6所示,VisData窗口第三行工具栏上的按钮分为三组,它们的名称和功能如下。 (1)类型群组按钮。 工具栏的第一组按钮,它可以设置记录集的访问方式,具体如下。 “表类型记录集”按钮(最左边的按钮):当以这种方式打开数据库的数据时,所进行的增加、删除、修改、查询等操作都是直接更新数据库中的数据。 “动态集类型记录集”按钮(中间的按钮

10、):使用这种方式是先将指定的数据打开并读入到内存中,当用户进行数据编辑操作时,不直接影响数据库中的数据。使用这种方式可以加快运行速度。 “快照类型记录集”按钮(最右边的按钮):以这种类型显示的数据只能读不能改,适用于只查询的情况。 上一页下一页返回任务1 数据库基础 (2)数据群组按钮。 工具栏中间的一组按钮,用于指定数据表中数据的显示方式。先在显示风格的按钮上单击一下,然后选中某个要显示数据的数据表,右击,在弹出的菜单上选择“打开”命令,则此表中的数据就以所要求的形式显示出来了。 (3)事物方式群组按钮。工具栏的最后一组按钮,用于进行事物处理。上一页下一页返回任务1 数据库基础 2.建立Mi

11、crosoft Access表结构 在上一节中创建了一个新的Access数据库bjgl. mdb,如图9-7所示。将鼠标移到“数据库窗口”区域内,右击,在弹出的菜单中选择“新建表”命令,出现如图9-8所示的“表结构”对话框,利用该对话框可以建立数据表的结构。首先建立班级基本情况表。在“表名称”文本框中输入“班级基本情况表”,然后添加班级基本情况表的字段,单击“添加字段”按钮,在此对话框中输入“姓名”字段的信息,主要包括字段的名称、类型、大小长度等。按顺序输入“姓名”、“学号”、“出生年月”、“性别”、“专业”、“相片”、“备注”以及“家庭住址”和“联系电话”字段,然后单击“关闭”按钮返回到“表

12、结构”对话框中,最后还可以继续建立多张表结构。添加的字段属性如表9-2所示。 上一页下一页返回任务1 数据库基础 建立了表的结构后就可以建立此表的索引了,这样可以加快检索速度。单击“添加索引”按钮,会出现图9 -9所示的对话框,通过此对话框将数据表的某些字段设置为索引。在“名称”文本框中输入索引的名称,然后从下边的“可用字段”列表框中选择作为索引的字段,这里选择的是“学号”。最后返回到“表结构”对话框中,单击“生成表”按钮,会在“数据库窗口”中出现“班级基本信息表”选项。 如果需要建立多个索引,则每建立完一项索引后,单击“确定”按钮,然后继续下一个索引的设置。设置完毕后,单击“关闭”按钮返回到

13、“表结构”对话框。上一页下一页返回任务1 数据库基础 3.添加Microsoft Access表记录 数据表建立好之后,就可以向表中输入数据添加Microsoft Access表记录了,数据管理器提供了简单的数据录入功能。 首先在工具栏上单击DBGrid显示风格的按钮,在数据库窗口中选择要添加数据的表,右击,如图9-10所示,选择“打开”命令,则出现以“网格风格”显示数据的数据录入界面窗口,如果此表中已有数据,则此时会显示出此表中的全部数据;若此表中无数据,则会显示出一个空表。如图9-11所示,这里以班级基本情况为例,并且是输入了部分数据后的情况。在此表上可以实现数据记录的增加、删除、修改和保

14、存等。上一页下一页返回任务1 数据库基础 VB的数据管理器提供了一个图形化的设置查询条件的窗口查询生成器,数据表建立好之后,可以对表中的数据进行有条件或无条件的查询。 选择“实用程序”菜单中的“查询生成器”按钮,或在“数据库窗口”区域右击,然后在弹出的菜单中选择“新查询”命令,即可出现“查询生成器”对话框,如图9-12所示。 假设要查询所有男生的“姓名”、“学号”和“专业”情况。操作步骤如下。 上一页下一页返回任务1 数据库基础 (1)首先选择要进行查询的数据表,此处为“班级基本情况表”。 (2)在“字段名称”下拉列表框中选择“班级基本情况.姓名”。 (3)选择“运算符”下拉列表框中的“=”。

15、 (4)单击“列出可能的值”按钮,在“值”下拉列表框中输入“False (5)单击“将And加入条件”按钮,将条件加入“条件”对话框中。 (6)在“要显示的字段”列表框中,选定所要显示的字段。 (7)单击“运行”按钮,在随后出现的对话框中,单击“否”按钮,查询结果如图9-13所示。上一页返回任务2 用Data控件访问数据库 在Visual Basic中,应用程序并不直接访问数据库中的数据信息,而是通过特定的接口技术,根据需要在数据库的基础上先生成记录集(Recordset)对象,再以此为数据源并借助数据绑定控件对记录进行浏览与操作。 Data控件是Visual Basic用来建立和进行数据库访

16、问的标准内部控件(已经在控件工具箱中),用Data控件可以访问Access , dBase , FoxPro , Paradox等数据库。内在的Data控件通过使用Microsoft的.Jet数据库引擎来实现数据库访问,与Microsoft Access所用的数据库引擎相同。使用这种内在的Data控件创建的应用程序,可以实现显示、编辑和更新来自多种已有的数据库的信息。 下一页返回任务2 用Data控件访问数据库 数据控件提供了一种方便地访问数据库中数据的方法,使用数据控件无须编写代码就可以对VB所支持的各种类型的数据库执行大部分数据访问操作,Data控件只能承担连接数据库并负责提供应用程序数据

17、源的工作,数据库执行大部分数据访问操作,Data控件只能承担连接数据库并负责提供相关数据源的工作,数据控件本身不能显示和直接修改记录,只能在与数据控件相关联的数据绑定中显示各个记录。要想观察数据库中的数据信息,必须通过相应的数据绑定控件才能实现。上一页下一页返回任务2 用Data控件访问数据库9. 2. 1 Data常用属性 1. Connect属性 Visual Basic 6. 0默认的数据库类型是Access的MDB文件。可识别的数据库包括: (1)Borland dBasc,Microsoft Foxpro的DBF文件。 (2)Borland Paradox的DB文件。 (3)Nove

18、ll Btrieve的DDF文件。 (4)Microsoft Excel的XLS文件。 (5)Lotus的WKS文件。 (6) Open DataBasc Connectivity ( ODBC)数据库。 如图9一14所示,通过属性窗口设置Connect属性,单击Connect属性右边的按钮,在出现的下拉菜单中进行选择即可。上一页下一页返回任务2 用Data控件访问数据库 2. DatabaseName属性 指定具体使用的数据库文件名,包括所有的路径名。 例如,要连接一个Microsoft Access的数据库C ; vbbjgl. mdb,则设置DatabaseName=C : vb bjg

19、l. mdb, Access数据库的所有表都包含在一个MDB文件中。 要在运行时设置,可以用如下代码: Data1 .databasename= C:vbbjgl. mdb上一页下一页返回任务2 用Data控件访问数据库 3. RecordSource属性 用于确定具体可访问的数据。该数据可以是数据库中的整张表的数据。例如,要指定bjgl. mdb数据库中的基本信息表,则在属性窗口中单击RecordSource属性右边的按钮,出现下拉菜单后选择“班级基本情况表”即可;也可以是某张表中的部分数据,使用SQL查询语言的一个查询字符串。例如,RecordSource = Select * From班

20、级基本情况表Where性别=-1 ,则表示要访问班级基本情况表中所有男生的数据。 Connect , DatabaseName , RecordSource这3个基本属性是利用数据访问控件访问数据库时必须设置的。它们可以通过属性窗口进行设置,也可以通过运行时在Formload事件中设置。若在运行时设置,可以用如下代码: Datal .connect=“Access”上一页下一页返回任务2 用Data控件访问数据库 4. Recordest属性 在用户设计时,在属性窗口见不到它, Recordest.指数据库中所有数据的集合。对数据库操作的许多方法都作用到这个属性上。 5. ReadOnly属性

21、 它有两种取值,示例如下: Data1. ReadOnly = True:此时,用户不能对数据记录进行修改。 Data1. ReadOnly = False:表示用户对数据记录的任何修改都是有效的。 ReadOnly属性的默认值是False 6. Exclusive属性 用法如下: Data1. Exclusive = True:禁止其他用户使用数据库。 Data1. Exclusive = False:允许其他用户使用数据库。上一页下一页返回任务2 用Data控件访问数据库 7. Exclusive的默认值是False 需要注意的是,当使用Data1. Exclusive = True语句禁

22、止其他用户使用数据库以后,如果又允许其他用户使用数据库,仅有Data1. Exclusive = False一个语句是不行的,必须在它后面使用Data1. Refresh语句,其设置才有效。 8. EofAction和BofAction属性 当记录指牛l一指向Recordest对象的开始(第一个记录前)或结束(最后一个记录后)处时,数据控件的EofAction和BofAction属性的设置或返回值决定了数据控件要采取的操作。属性的取值如表9-3所示。上一页下一页返回任务2 用Data控件访问数据库9. 2. 2 Data数据控件的事件 1. Reposition事件 在数据控件中移动记录指针,

23、当一条记录成为当前记录时触发Reposition。通常,可以在这个事件中显示当前指针的位置。 例如,在Data1 Reposition事件中加入代码: Private Sub Data1 Reposition() Data1.Caption=Data1.Recordset. AbsolutePosition +1 End Sub 这里Reposition可以定位记录集对象,AbsolutePosition属性指示当前指针值(从0开始)。当单击数据控件对象上的箭头按钮时,数据控件的标题区内(Data1处)会显示记录的序号。上一页下一页返回任务2 用Data控件访问数据库 2. Validata事

24、件 如果移动数据控件中的记录指针,当绑定控件中的内容被修改时,对应的数据库当前记录的内容将被更新,此时触发该事件。 Validata事件检查被数据控件绑定的控件内的数据是否发生变化,并通过Save参数(True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validata事件,如表9-4所示。 例如,如果不允许用户在数据浏览时一般可用Validata事件来检查数据的有效性空性别数据上一页下一页返回任务2 用Data控件访问数据库 可使用代码: Private Sub Data1 Validate( Action As Integer,Save As Integer)

25、 If Save And Len( Trim(text3)=0 Then Action=0 MsgBox“胜别不能为空!” End If Fnd Sub 此代码检查被数据控件绑定的控件Tex l3内的数据是否被清空。如果Tex t3内的数据发生变化,则Save参数返回True,若性别对应的文本框Text3被置空,则通过Action =0取消对数据控件的操作。上一页下一页返回任务2 用Data控件访问数据库9. 2. 3 Data数据控件的方法 1. Refresh方法 如果DatabaseName , ReadOnly , Exclusive或Conned属性设置的值发生改变,可以使用Refr

26、esh方法打开或重新打开数据库,用Refresh方法可以更新数据控件的集合内容。 2. UpdateControls方法 UpdateControls方法可以从数据控件的记录集中再取回原先的记录内容,即恢复原先值。当在与数据控件链接的控件中修改了记录内容,可以用UpdateControls 方法使这些控件显示恢复原来的值。 3. UpdateRecord方法 强制数据控件将绑定控件内的数据写入数据库。上一页下一页返回任务2 用Data控件访问数据库9. 2. 4 Data数据控件上的对象 1. Database对象 在Data控件中,DatabaseName属性用来连接到一个具体的数据库,并通

27、过它的Dalabasc属性表现出来。 2.记录集Recordset对象 由Recordset确定的具体访问的数据构成的记录集, Recordset也是对象,因而,它和其他对象一样具有属性和方法。一个Recordset对象可代表一个数据库表里的记录,或运行依次查询所得的记录结果。在Data控件中可有3类Recordset对象,即Table(表类型)、Dynaset(动态类型)和Snapshot(快照类型),默认为Dynaset类型。 在实际操作中使用了什么记录集关键取决于要完成的任务。表类型的记录集适合更新数据,其搜索速度不及动态类型。快照类型的记录集内存开销最小,适合显示只读数据。上一页下一页

28、返回任务2 用Data控件访问数据库 下面列出记录集常用的属性和方法。 (1)AbsolutePosition属性。 AbsolutePosition返回当前指针值,如果是第一条记录,其值是0,该属性为只读属性。 (2)Bof和Eof属性。 Bof判定记录指针是否在首记录之前,若Bof为True,则当前位置位于记录集的第一条记录之前。与此类似,Eof判定记录指牛l一是否在末记录之后。 (3)Bookmark属性。 Bookmark属性的值采用字符串类型,用于设置或返回当前指伸一的标签。在程序中可以使用Bookmark属性重定位记录的指针时,不能使用AbsolutePosition属性。 (4)

29、Nomatch属性。 在记录集中进行查找时,如果找到相匹配的记录,则Recordset的Nomatch属性为False;否则,为True该属性常与Bookmark属性一起使用。上一页下一页返回任务2 用Data控件访问数据库 (5)RecordCount属性。 RecordCount属性对Recordset对象中的记录计数,该属性为只读属性。在多用户环境下,RecordCount属性值可能不准确,为了获得准确值,在读取RecordCount属性值之前,可使用MoveLast方法将记录指针移至最后一条记录上。 (6) Move方法。 使用Move方法可代替对数据控件对象的4个箭头操作而遍历整个记

30、录集。5种Move方法如下。 MoveFirsl方法:移至第一条记录。 MoveLasl方法:移至最后一条记录。 MoveNexl方法:移至下一条记录。 MovePrevious方法:移至上一条记录。 Moven方法:向前或向后移n条记录,n为指定的数值。上一页下一页返回任务2 用Data控件访问数据库9. 2. 5实现数据库记录的操作方法 对数据库记录的操作,可通过Recordset对象的方法实现。 1. Addnew方法 在语句Datal. Recordset. Addnew中,表示向数据控件所连接的数据库中增加一个空的记录。新记录的每个字段如果有默认值将以默认值表示,如果没有则为空白。例

31、如,给Datal的记录集添加新记录: Datal. Recordset. Addnew 这一功能在执行了Datal. Recordset. Update后生效。 2. Update方法 用在语句Datal. Recordset. Update中,表示向系统发送一个更新数据库的命令。上一页下一页返回任务2 用Data控件访问数据库 3. MoveLast方法 用在语句Datal. Recordset. MovcLast中,表示把数据库记录指牛l一指向最后一记录。 4. Delete方法 Delete用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。 5. Edit方法 Edit用于对可

32、更新的当前记录进行编辑修改。 6. Seek方法 Seek方法适用于数据表类型(Table)记录集,通过一个已被设置为索引(Index)的字段,查找符合条件的记录,并使该记录为当前记录。 格式:记录集. Seek比较式,key 1 , key2 , , key 13 例如,当索I为“学号”字段时,查找学号为“2002110020”的记录:Datal. Recordset. Seek “:”,2002110020 上一页下一页返回任务2 用Data控件访问数据库 7. Find方法 Find方法用于查找记录,包含FindFirst, FindLast, FindNext和FindPrevious

33、方法。例如,查找“学号”字段为“2002110021”的记录: Datal. Recordset. FindFirst 学号=2002110021 If Datal. Recordset. NoMatch then Msgbox 找不到2002110021号学生 End if 通常当查找不到符合条件的记录时,需要显示信息提示用户,因此使用NoMatch属性,当使用Find或Seek方法找不到相符的记录时NoMatch属性值为True 8. Move方法 Move方法群组是用于移动记录,包含MoveFirst, MoveLast, MovcNext和MovcPrevious 4种方法,分别是移到

34、第一条记录、移到最后一条记录、移到下一条记录和移到前一条记录。当在最后一个记录时,如果使用了MovcNext方法时,EOF的值会变为True,如果再使用MovcNext方法就会出错。对于MovcPrevious方法,如果前移,结果也是同样。 9. Update方法 Update方法用于将修改的记录内容保存到数据库中。上一页返回任务3 使用ADO控件访问数据库9. 3. 1 ADO的数据库访问技术 数据库使用的数据源可能像文本文件一样简单,也可能非常复杂,或者是尚未定义类型的某种数据。需要一个简单、一致的数据访问窗口,访问和修改众多类型的数据源。 在VB中,用户可使用3种数据访问接口,即Acti

35、ve X数据对象(ADO)、数据访问对象(DAO)和远程数据对象(RDO),这3种接口代表了数据访问技术的3个发展时代,其中最新的是ADO,它最简单也最灵活,因此用户最好采用ADO作为数据访问接口。 ADO又称为OLE自动化接口,是访问由Microsoft推出的最新、功能最强的应用程序接口。ADO Data控件是ActiveX数据对象,ADO Data控件和Data控件在概念上很相似,都是将一个数据源连接到一个数据感知控件,也都有相同的外观(共4个按钮)。不过,ADO的适用性更强,在应用程序中也可直接使用ADO。下一页返回任务3 使用ADO控件访问数据库9. 3. 2 ADO Data控件 ADO Data控件是与D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论