vb数据库教程.ppt

上传人:夺命阿水 文档编号:242298 上传时间:2023-03-17 格式:PPT 页数:60 大小:4.89MB
返回 下载 相关 举报
vb数据库教程.ppt_第1页
第1页 / 共60页
vb数据库教程.ppt_第2页
第2页 / 共60页
vb数据库教程.ppt_第3页
第3页 / 共60页
vb数据库教程.ppt_第4页
第4页 / 共60页
vb数据库教程.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《vb数据库教程.ppt》由会员分享,可在线阅读,更多相关《vb数据库教程.ppt(60页珍藏版)》请在课桌文档上搜索。

1、软件设计基础,VB程序设计,第8章 数据库程序设计,本章学习目标:了解数据库的一些基本概念,掌握创建Access数据库的方法掌握使用DATA和ADO数据控件连接数据库和数据表的方法掌握数据识别控件绑定到ADO数据控件的方法掌握ADO控件的Recordset对象常用方法和属性理解ADO对象模型的概念,掌握使用ADO对象模型编程的方法和步骤掌握SQL查询语句在VB中的使用,第8章 数据库程序设计,本章重点ADO控件的Recordset对象的使用ADO对象模型的使用本章难点使用ADO对象模型编程实现数据库的访问,学习内容,实例演示及分析 数据库基本概念 创建数据库和数据表 数据控件DATA-常用控件

2、的属性、事件和方法 数据记录的增删改 ADO数据控件和SQL查询-ADO访问数据模型、常用属性和方法 绑定控件 数据窗体向导 数据报表制作,员工工资管理系统,实例演示,在第6章讲解了文件,并用文件保存员工工资管理系统中的职工信息,实现了程序和数据的分离,但是使用文本文件保存和管理数据,保存的数据量小、安全性差、数据不直观,而且管理困难。数据库技术可以实现对数据进行科学的组织、存储和有效集中管理,而VB也为用户提供了访问数据库的功能。,实例演示-实例8.1(实例8.1总),员工工资管理系统,问题分析,本章的目标是将第6章以文本文件为数据源的员工工资管理系统改为以数据库为数据源的员工工资管理系统。

3、数据库管理系统是对数据实施有效集中管理的专门软件,这样的管理方式相对以文本文件为数据源方式的功能强、效率高,保存的数据量大,安全性好。,员工工资管理系统,问题分析,根据系统的功能需求分析,设计完成该系统,必须首先创建一个数据库,用以保存员工的基本信息,这样才可以在Visual Basic中调用数据库中的数据,并以某种方式显示出来。要设计一个具有数据信息管理功能的系统,需要下面几个步骤:(1)确定并设计系统需要的数据库和数据表,并创建数据库和数据表。(2)新建工程,根据要求设计界面。(3)实现VB工程与数据库的连接。(4)编写代码实现相应功能。,数据库基本概念,数据库系统,1.数据库数据是指能被

4、计算机存储和处理的反映客观实体信息的物理符号。数字、文字、表格、音频、视频、图形、图像和动画等都被称为数据。数据库(Data Base,简记为DB)则是为某种特殊目的而组织起来的记录和文件的集合。2.数据库管理系统数据库管理系统(Data Base Manage System,简称为DBMS),是数据库系统中对数据进行管理的专门软件,是数据库系统的核心组成部分,对数据库的所有操作和控制,都是通过DBMS来进行的。3.数据库应用系统是在某种DBMS的支持下,根据实际应用的需要,开发出来的应用程序包,数据库基本概念,关系数据库,1.数据模型数据模型是表示数据及数据之间联系的结构方式。在实际的数据处

5、理中,先将现实世界的事物及其联系抽象为信息世界的信息模型,再将信息模型抽象转化为计算机世界的数据模型。数据模型的好坏直接影响数据库的性能。数据模型的设计方法决定着数据库的设计方法,目前流行的模型有:网状模型、层次模型和关系模型。(1)网状模型是用图结构来表示数据之间的联系。(2)层次模型是用树结构来表示数据之间的联系。(3)关系模型是用二维表结构来表示数据之间的联系。关系模型是一种较先进的模型,目前几乎所有的现代DBMS都使用关系数据库模型来存储和处理信息。在关系数据库管理系统中,系统以表的形式管理所有数据。,数据库基本概念,关系数据库,2.关系数据库 关系数据库是以关系模型为基础的数据库,它

6、由以下三部分组成:(1)数据结构模型所操作的对象、类型的集合。(2)完整性规则保证数据有效、正确的约束条件。(3)数据操作对模型对象所允许执行的操作方式。3.关系表(1)关系:关系(Relation)是一个由行和列组成的二维表格,也称为关系表或表。(2)字段:表由若干行和若干列组成,每一列称为字段(Field)。(3)记录:表中的每一行称为记录(Record)。(4)值:在表中的行和列,凡记录和字段的相交处就是值存储的数据元素。(5)表的主键和索引:,数据库基本概念,关系数据库,数据库基本概念,关系数据库,4.记录集数据库可以由多个表组成,表与表之间可以用不同的方式相互关联。例如在笔记本信息管

7、理数据库中还有一个基本配置表,其结构如图8.8所示。在该表中只需一个编号字段引用笔记本的品牌和价格信息等,而不必重复每一个字段,通过两个表中相同的编号字段就可以把笔记本的配置信息和价格信息等联系起来了。,图8.8 基本配置表的结构,数据库基本概念,关系数据库,4.记录集在Visual Basic中,可以将一个或几个表中的数据构成记录集RecordSet对象,记录集也由行和列构成,它与表类似,如图8.9所示。,数据库基本概念,关系数据库,4.记录集在Visual Basic中数据库内的表格不允许直接访问,而只能通过记录集对象进行记录的操作和浏览,因此,记录集是一种浏览数据库的工具。用户可根据需要

8、,通过使用记录集对象选择数据。,记录集有三种类型:表类型(Table):表类型的RecordSet对象是当前数据库真实的数据表。它比其他类型的记录集处理速度都快,但需要大量的内存开销。动态集类型(DynaSet):动态集类型的RecordSet对象是可以更新的数据集,它实际上是对一个或者几个表中的记录的引用。快照类型(SnapShot):快照类型的RecordSet对象是静态数据的显示。它包含的数据是固定的,记录集为只读状态,它反映了在产生快照的一瞬间数据库的状态。快照是最缺少灵活性的记录集,但它所需要的内存开销最少。如果只是浏览记录,可以用快照类型,数据库的创建,任务分析,在员工工资管理系统

9、中,要保存员工个人信息,即员工编号、姓名、年龄、所在部门、职位等,还要保存员工工资信息,即员工编号、基本工资、奖金、各种补助。因此需要建立一个数据库,库中要有两张表。数据库创建有很多软件,如Access、SQL Sever、VFP等。我们使用Access数据库,可以用Access数据库开发软件创建,也可以用VB集成开发环境中的“可视化数据管理器”创建。,数据库的创建,操作步骤,启动VB新建工程。建立数据库。(1)在VB集成开发环境中,单击“外接程序”“可视化数据管理器”,打开可视化数据管理器的“VisData”窗口,如图8.10所示。(2)单击“文件”“新建”“Microsoft Access

10、”“Version 7.0 MDB”,打开“选择要创建的Microsoft Access 数据库”对话框。(3)在该对话框中数据要创建的数据库文件的名称,指定保存的路径。一般将数据库保存在和工程文件相同的文件夹中。,图8.10 可视化数据管理器窗口,数据库的创建,操作步骤,数据库的创建,操作步骤,3.建立数据表。(1)确定表结构。员工基本信息表 员工工资表,数据库的创建,操作步骤,3.建立数据表。(2)建立表结构。在图8.11所示的“数据库窗口”的空白处右击,从弹出的快捷菜单中选择“新建表”,打开如图8.12所示的表结构对话框。在“表名称”文本框中输入数据表的名称,“添加字段”按钮 所有字段添

11、加之后,单击“生成表”。(3)输入表记录。,图8.12“表结构”对话框,数据库的创建,操作步骤,3.建立数据表。(3)输入表记录。双击表名称,即可输入表记录,如图所示。,数据控件Data,员工基本信息浏览,要在Visual Basic中访问数据库,就要使用一个能够访问数据库的控件。主要有Data控件、DAO控件、ADO控件等,其中Data控件 是Visual Basic内嵌的一个访问数据库的方便的工具。,实例演示,设计程序界面 添加Data控件,数据控件Data,使用Data控件连接数据库和数据表,设置Data控件属性(1)Connect属性Connect属性指定数据控件所要连接的数据库类型,

12、VB默认的数据库是Access的MDB文件。此外,也可连接DBF、XLS、ODBC等类型的数据库。(2)DatabaseName属性DatabaseName属性指定具体使用的数据库文件名,包括所有的路径名。本例中选wages.mdb。注意:最好将数据库文件和工程文件放在同一个文件夹下,这样设置其DatabaseName属性时只写文件名即可。否则,如果写绝对路径,则随着工程文件位置的改变,可能出现找不到数据库文件的错误。,数据控件Data,使用Data控件连接数据库和数据表,设置Data控件属性(3)RecordSource属性RecordSource属性确定具体可访问的数据,这些数据构成记录集

13、对象的RecordSet对象。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。(本例这中选info)(4)RecordType属性确定记录集类型,指定记录集的Table、DynaSet、SnapShot三种类型中的一种.本例中因为只是浏览信息,无需修改记录,故可将其类型选为SnapShot,数据控件Data,将数据绑定控件绑定到Data控件,在Visual Basic中,数据控件本身不能直接显示记录集中的数据,必须通过能与它绑定的控件来实现。可与数据控件绑定的控件对象有文本框、标签、图像框、图形框、列表框、组合框、复选框、网格、DB列表框、DB网格和

14、OLE容器等空间。本例中的数据绑定控件为文本框。必须设置数据绑定控件的两个属性:(1)DataSource属性通过指定一个有效的数据控件绑定控件连接到一个数据源上。(2)DataField属性设置数据源中有效的字段使绑定控件与其建立联系。本实例中分别设置几个文本框的上述两个属性。,数据控件Data,编写实现信息浏览的代码,Data控件本身就有浏览记录的功能,单击对应按钮可实现“第一条”、“上一条”、“下一条”和“最后一条”的功能。但直接使用控件浏览不是很好看,可通过单击按钮完成。必须使用RecordSet记录集的属性和方法来实现。(1)AbsolutePosition属性AbsolutePos

15、ition属性返回当前指针值,如果是第1条记录,其值为0。该属性为只读属性。在Data控件的Reposition事件中,修改Data控件的Caption属性。(2)RecordCount属性RecordCount属性对Recordset对象中的记录计数,为只读属性。(3)BOF和EOF属性,数据控件Data,编写实现信息浏览的代码,主要方法(1)Move方法MoveFirst方法:移至第一条记录。MoveLast方法:移至最后一条记录。MoveNext方法:移至下一条记录。MovePrevious方法:移至上一条记录。Move n方法:向前或向后移动n条记录,n为指定的数值。(2)Find 方

16、法RecordCount属性对Recordset对象中的记录计数,为只读属性。,数据控件Data,编写实现信息浏览的代码,主要方法(2)Find 方法使用Find方法可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录。共有如下四种Find方法:FindFirst方法:从记录集的开始查找满足条件的第1条记录。FindLast方法:从记录集的尾部向前查找满足条件的第1条记录。FindNext方法:从当前记录开始查找满足条件的下一条记录。FindPrevious方法:从当前记录开始查找满足条件的上一条记录。四种Find方法的语法格

17、式相同:数据集合.Find方法 条件其中,条件是一个指定字段与常量关系的字符串表达式。,数据控件Data,编写实现信息浏览的代码,在写条件时有以下几点需要说明:(1)在 语句Data1.Recordset.FindFirst 编号=&bh&中,bh是个字符串变量,必须使用符号“&”进行字符串的连接,其两侧必须加空格。(2)如果要查找的条件部分是个字符串常量,如查找编号为“000010”的记录,则要写成如下形式:Data1.Recordset.FindFirst 编号=000010。即字符串常量用单引号括起来。(3)如果要查找的条件部分是个数值常量,如查找参考价格大于5000的记录,则要写成如下

18、形式:Data1.Recordset.FindFirst 参考价格=5000,若将5000存入整型变量jg,则写成:Data1.Recordset.FindFirst 参考价格=&jg(4)可以将条件部分存放在字符串变量中,然后在Find方法使用该字符串变量。如:Findstr=编号=&bh&Data1.Recordset.FindFirst Findstr,数据控件Data,编写实现信息浏览的代码,在写条件时有以下几点需要说明:(5)如果要进行模糊查询,如查找型号中含有字符“S”的笔记本电脑记录,则可以使用如下语句:Data1.Recordset.FindFirst 型号 Like*S*其中

19、Like是个运算符,*S*匹配型号字段中带有“S”字符的所有型号的字符串。(6)Find方法进行的查找在默认情况下是不区分大小写的。要改变默认查找方法,可在窗体的声明部分或声明模块中使用下列语句:Option Compare Text 不区分大小写 Option Compare Binary 区分大小写(7)Find方法在找不到相匹配的记录时,当前记录保持在查找的起始处,NoMatch属性为True。如果Find方法找到相匹配的记录,则定位到该记录,Recordset的NoMatch属性为False。,数据控件Data,编写实现信息浏览的代码,数据控件的事件:(1)Reposition事件 R

20、eposition事件发生在一条记录成为当前记录后。只要改变记录集的指针使其从一条记录移到另一条记录,都会触发Reposition事件。通常,可在此事件中显示当前指针的位置。(2)Validate事件 Validate事件是在移动到一条不同记录之前出现。此外,当修改或删除数据表中的记录前或卸载含有数据控件的窗体时都会触发Validate事件。Validate事件能检查被数据控件绑定的控件内的数据是否发生变化。它通过Save参数(True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。,数据控件Data,编写实现信息浏览的代码,表8.3 Valid

21、ate事件的Action参数,数据控件Data,员工基本信息维护,在前面浏览信息窗体中,只能浏览信息,却不能进行维护。在上面添加几个用于维护的按钮,界面设计如图:,实例演示,数据控件Data,员工基本信息维护,1.增加记录AddNew方法在记录集中增加新记录。增加记录的步骤为:(1)调用AddNew方法(2)给字段赋值,格式为:Recordset.Fields(字段名)=值(3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库,提示:如果使用AddNew方法增加了新记录,但是没有使用Update方法而移动到其他记录,或者关闭了记录集,那么所做的输入将全部丢失,而没有任何警告。当

22、调用Update方法写入记录后,记录指针自动从新记录返回到添加记录前的位置上,而不显示新记录。为此,可在调用Update方法后,使用MoveLast方法将记录指针再次移到新记录上。,数据控件Data,员工基本信息维护,2.删除记录要从记录集中删除记录的操作分为三步:(1)定位被删除的记录使之成为当前记录。(2)调用Delete方法。(3)移动记录指针。,提示:在使用Delete方法时,当前记录立即删除,不加任何的警告或者提示,可在Delete方法之前增加提示信息。删除一条记录后,被数据库所约束的绑定控件仍旧显示该记录的内容。因此,必须移动记录指针刷新绑定控件,一般采用移至下一条记录的处理方法,

23、并检查EOF属性。,数据控件Data,员工基本信息维护,3.修改记录(1)调用Edit方法。(2)给各字段赋值。(3)调用Update方法,确定所做的修改。,提示:如果要放弃对数据的修改,在使用Update方法之前,可使用UpdateControls方法或Refresh方法。,ADO控件与查询,员工工资信息维护,.添加控件要使用ADO控件,必须先将其添加到工具箱中,具体方法如下:(1)单击“工程”“部件”,打开“部件”对话框,选择Microsoft ADO Data Control 6.0(OLEDB)。(2)单击“确定”按钮,即可将ADO控件 添加到工具箱中。,实例演示-实例8.2总,ADO

24、控件与查询,员工工资信息维护,2.使用控件要使ADO控件访问数据库,其实现过程如下:(1)在窗体上添加ADO数据控件。(2)设置ADO控件的“ConnectionString”属性,建立与数据库提供者的连接。(3)设置ADO控件的“RecordSource”属性,定义记录源和从记录源中产生记录集。(4)设置数据绑定控件的“DataSource”和“DataField”属性,建立记录集与数据绑定控件的联系,并在窗体上显示数据供用户访问。,ADO控件与查询,员工工资信息维护,3.ADO控件属性右击添加的ADO控件,选择“ADODC属性”,打开“属性页”对话框:(1)ConnectionString

25、属性在对话框中,单击“生成”,打开“数据连接属性”对话框,选择“选择“Microsoft Jet 4.0 OLE DB Provider”;,ADO控件与查询,员工工资信息维护,3.ADO控件属性(1)ConnectionString属性单击“下一步”,选择或输入数据库名称,此处只输入“wages.mdb”,单击“测试连接”,看是否连接成功。,ADO控件与查询,员工工资信息维护,3.ADO控件属性(2)RecordSource属性该属性用来设置与ADO连接的数据库中的记录集。在ADO“属性页”对话框中,单击“记录源”选项卡,其中有4种命令类型,可从中选择一种,如图8.30所示。(1)8-adC

26、mdUnknown:未知,为系统默认值。(2)1-adCmdText:文本命令类型,使用SQL命令。(3)2-adCmdTable:数据表。如果数据源记录集是单一表,可使用此方式。(4)3-adCmdstoredProc:存储过程。,图8.30“记录源”选项卡,ADO控件与查询,员工工资信息维护,3.ADO控件属性(3)Fields属性Recordset的Fields属性是一个集合,每个Field(字段)对象对应于Recordset中的一列,使用Field对象的Value属性设置或返回当前记录的数据。如:Adodc1.Recordset.Fields(编号)=110001 即是对数据集中的“编

27、号”字段进行赋值。如果“编号”字段是数据集中的第一个字段,还可使用如下方式使用:Adodc1.Recordset.Fields(0)=110001,ADO控件与查询,员工工资信息维护,3.ADO控件属性(3)Fields属性Recordset的Fields属性是一个集合,每个Field(字段)对象对应于Recordset中的一列,使用Field对象的Value属性设置或返回当前记录的数据。如:Adodc1.Recordset.Fields(编号)=110001 即是对数据集中的“编号”字段进行赋值。如果“编号”字段是数据集中的第一个字段,还可使用如下方式使用:Adodc1.Recordset.

28、Fields(0)=110001,ADO控件与查询,员工工资信息维护,4.数据绑定控件绑定DataGrid控件(1)添加DataGrid控件单击“工程”“部件”,在打开的对话框中选择“Microsoft DataGrid Control 6.0(OLEDB)”,将DataGrid控件添加到工具箱,在将其绘制到窗体上。(2)在窗体上放置ADO控件并设置属性(3)设置ADO控件的记录源(4)设置DataGrid控件的DataSource属性,将DataGrid绑定到Ado(5)右击DataGrid控件,从弹出的快捷菜单中选择“检索字段”,则Ado记录集中的字段就显示在DataGrid控件上。(6)

29、右击DataGrid控件,从弹出的快捷菜单中选择“属性”,打开“属性页”对话框,可在此设置DataGrid控件的外观,如字体,背景,前景,是否有滚动条,是否允许添加、删除、修改等。,ADO控件与查询,员工工资信息维护,4.数据绑定控件绑定DataGrid控件(7)右击DataGrid控件,从弹出的快捷菜单中选择“编辑”,进入数据网格字段布局的编辑状态,此时,可将鼠标放在两个字段的边线上,鼠标指针变成双向箭头时,可调整列宽。右击需要删除的字段名,从弹出的快捷菜单中选择“删除”,就可以从DataGrid控件中删除该字段。,图8.34 DataGrid控件的属性页,ADO控件与查询,员工工资信息维护

30、,5.实现记录的添加、删除和修改(1)ADO控件的方法。,ADO控件与查询,员工工资信息维护,5.实现记录的添加、删除和修改(2)DataGrid控件属性。,ADO控件与查询,信息查询,1.Select语句格式 常见的Select语句包括六部分,其语法格式为:Select 字段名列表 From 表名Where条件GroupBy 分组字段 Having 分组条件 Order By 字段Asc|Desc,实例演示-信息查询,ADO控件与查询,信息查询,表8.6 合计函数,实例演示-信息统计,ADO控件与查询,信息查询,1.单表查询2.多表查询3.统计查询,报表制作,实例演示,实例演示-报表打印,报

31、表制作,制作过程,1.建立数据环境,(1)单击“工程”“添加Data Environment”,打开如图8.43所示的“Data Environment”窗口;(2)右击“Connection1”,从弹出的快捷菜单中选择“属性”,打开数据链接属性对话框,与图8.27一样,按照向导依次选择提供程序、连接数据库的路径和名称,并测试是否连接成功。此例中选择“Microsoft Jet 4.0 OLE DB Provider”,数据库选择“wage.mdb”。,图8.43“Data Environment”窗口,报表制作,制作过程,1.建立数据环境,(3)右击“Connection1”,从弹出的快捷菜

32、单中选择“添加命令”,此时在“Connection1”下添加一个“Command1”,右击,选择“属性”,打开“Command1属性”对话框,如图8.44所示。,图8.44“Command1属性”对话框,报表制作,制作过程,1.建立数据环境,(4)设置数据源,可选择单一的表,也可输入SQL语句。此例中选择“SQL语句”,可直接输入,也可单击“SQL生成器”,打开如图8.45所示的窗口,从中选择表和要显示的字段,则自动生成SQL语句。关闭保存Command1。,报表制作,制作过程,1.建立数据环境,(5)此时数据环境设置完成,如图8.46所示。可以根据需要按照(3)-(4)步继续添加命令。,报表

33、制作,制作过程,2.设计报表,(1)单击“工程”“添加Data Report”,将报表设计器添加到当前工程中,产生一个DataReport1对象,并在工具箱内产生一个“数据报表”标签,如图8.47所示。,报表制作,制作过程,2.设计报表,(2)设计报表标头区和页标头区。此例中只设计了页标头区。一般将表格的表头设计在页标头区中。(3)设计细节区。将DataEnvironment1中Command1对象内的字段拖动到表设计器的细节区。当一个字段被拖动到数据报表设计器时,默认的方式会产生一个标签作为标题,一个文本控件作为显示该字段的数据。如果不想要标题可以将标签控件删除。也可以事先在数据环境设计器中

34、,单击工具栏上的“选项”按钮,打开如图8.48所示的“选项”对话框,在“字段映射”选项卡内取消“拖放字段标题”的复选框的选取。,报表制作,制作过程,2.设计报表,(4)设计页注脚区和报表注脚区,此例只设计报表注脚区。先拖动一个标签到报表注脚区,设置Caption属性为“平均工资:”,再拖动一个函数到“平均工资:”的右侧,设置其属性:DataField=“实发工资”,FunctionType=“1-rptFuncAve”,以求实发工资的平均值。(5)设置DataReport1的DataSource属性和DataMember属性,此例为“DataEnvironment1”和“Command1”。,报表制作,制作过程,2.设计报表,(6)要显示报表,可使用DataReport1对象的Show方法。提示:若出现报表宽度大于纸张宽度的错误,应调整打印机的页面设置和上下左右边距。(7)报表打印可直接使用预览窗口左上角的打印按钮来控制,也可以使用DataReport1对象的PrintReport方法。(8)使用预览窗口工具栏上的“导出”按钮可将报表内容输出成文本文件或HTML文件,也可以用DataReport1对象的ExportReport方法将报表内容导出。,教材P303的8.8实战训练,实战训练,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号