




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,1,软件设计基础,河北理工大学,VB程序设计,.,2,第8章 数据库程序设计,本章学习目标: 了解数据库的一些基本概念,掌握创建Access数据库的方法 掌握使用DATA和ADO数据控件连接数据库和数据表的方法 掌握数据识别控件绑定到ADO数据控件的方法 掌握ADO控件的Recordset对象常用方法和属性 理解ADO对象模型的概念,掌握使用ADO对象模型编程的方法和步骤 掌握SQL查询语句在VB中的使用,.,3,第8章 数据库程序设计,本章重点 ADO控件的Recordset对象的使用 ADO对象模型的使用 本章难点 使用ADO对象模型编程实现数据库的访问,.,4,学习内容,实例演示及分
2、析 数据库基本概念 创建数据库和数据表 数据控件DATA- 常用控件的属性、事件和方法 数据记录的增删改 ADO数据控件和SQL查询-ADO访问数据模型、常用属性和方法 绑定控件 数据窗体向导 数据报表制作,.,5,员工工资管理系统,实例演示,在第6章讲解了文件,并用文件保存员工工资管理系统中的职工信息,实现了程序和数据的分离,但是使用文本文件保存和管理数据,保存的数据量小、安全性差、数据不直观,而且管理困难。数据库技术可以实现对数据进行科学的组织、存储和有效集中管理,而VB也为用户提供了访问数据库的功能。,实例演示-实例8.1(实例8.1总),.,6,员工工资管理系统,问题分析,本章的目标是
3、将第6章以文本文件为数据源的员工工资管理系统改为以数据库为数据源的员工工资管理系统。数据库管理系统是对数据实施有效集中管理的专门软件,这样的管理方式相对以文本文件为数据源方式的功能强、效率高,保存的数据量大,安全性好。,.,7,员工工资管理系统,问题分析,根据系统的功能需求分析,设计完成该系统,必须首先创建一个数据库,用以保存员工的基本信息,这样才可以在Visual Basic中调用数据库中的数据,并以某种方式显示出来。 要设计一个具有数据信息管理功能的系统,需要下面几个步骤: (1)确定并设计系统需要的数据库和数据表,并创建数据库和数据表。 (2)新建工程,根据要求设计界面。 (3)实现VB
4、工程与数据库的连接。 (4)编写代码实现相应功能。,.,8,数据库基本概念,数据库系统,1. 数据库 数据是指能被计算机存储和处理的反映客观实体信息的物理符号。数字、文字、表格、音频、视频、图形、图像和动画等都被称为数据。数据库(Data Base,简记为DB)则是为某种特殊目的而组织起来的记录和文件的集合。 2. 数据库管理系统 数据库管理系统(Data Base Manage System,简称为DBMS),是数据库系统中对数据进行管理的专门软件,是数据库系统的核心组成部分,对数据库的所有操作和控制,都是通过DBMS来进行的。 3. 数据库应用系统 是在某种DBMS的支持下,根据实际应用的
5、需要,开发出来的应用程序包,.,9,数据库基本概念,关系数据库,1.数据模型 数据模型是表示数据及数据之间联系的结构方式。在实际的数据处理中,先将现实世界的事物及其联系抽象为信息世界的信息模型,再将信息模型抽象转化为计算机世界的数据模型。数据模型的好坏直接影响数据库的性能。数据模型的设计方法决定着数据库的设计方法,目前流行的模型有:网状模型、层次模型和关系模型。 (1)网状模型是用图结构来表示数据之间的联系。 (2)层次模型是用树结构来表示数据之间的联系。 (3)关系模型是用二维表结构来表示数据之间的联系。 关系模型是一种较先进的模型,目前几乎所有的现代DBMS都使用关系数据库模型来存储和处理
6、信息。在关系数据库管理系统中,系统以表的形式管理所有数据。,.,10,数据库基本概念,关系数据库,2.关系数据库 关系数据库是以关系模型为基础的数据库,它由以下三部分组成: (1)数据结构模型所操作的对象、类型的集合。 (2)完整性规则保证数据有效、正确的约束条件。 (3)数据操作对模型对象所允许执行的操作方式。 3.关系表 (1)关系:关系(Relation)是一个由行和列组成的二维表格,也称为关系表或表。 (2)字段:表由若干行和若干列组成,每一列称为字段(Field)。 (3)记录:表中的每一行称为记录(Record) 。 (4) 值:在表中的行和列,凡记录和字段的相交处就是值存储的数据
7、元素 。 (5)表的主键和索引:,.,11,数据库基本概念,关系数据库,.,12,数据库基本概念,关系数据库,4.记录集 数据库可以由多个表组成,表与表之间可以用不同的方式相互关联。例如在笔记本信息管理数据库中还有一个基本配置表,其结构如图8.8所示。在该表中只需一个编号字段引用笔记本的品牌和价格信息等,而不必重复每一个字段,通过两个表中相同的编号字段就可以把笔记本的配置信息和价格信息等联系起来了。,图8.8 基本配置表的结构,.,13,数据库基本概念,关系数据库,4.记录集 在Visual Basic中,可以将一个或几个表中的数据构成记录集RecordSet对象,记录集也由行和列构成,它与表
8、类似,如图8.9所示。,.,14,数据库基本概念,关系数据库,4.记录集 在Visual Basic中数据库内的表格不允许直接访问,而只能通过记录集对象进行记录的操作和浏览,因此,记录集是一种浏览数据库的工具。用户可根据需要,通过使用记录集对象选择数据。,记录集有三种类型: 表类型(Table):表类型的RecordSet对象是当前数据库真实的数据表。它比其他类型的记录集处理速度都快,但需要大量的内存开销。 动态集类型(DynaSet):动态集类型的RecordSet对象是可以更新的数据集,它实际上是对一个或者几个表中的记录的引用。 快照类型(SnapShot):快照类型的RecordSet对
9、象是静态数据的显示。它包含的数据是固定的,记录集为只读状态,它反映了在产生快照的一瞬间数据库的状态。快照是最缺少灵活性的记录集,但它所需要的内存开销最少。如果只是浏览记录,可以用快照类型,.,15,数据库的创建,任务分析,在员工工资管理系统中,要保存员工个人信息,即员工编号、姓名、年龄、所在部门、职位等,还要保存员工工资信息,即员工编号、基本工资、奖金、各种补助。因此需要建立一个数据库,库中要有两张表。 数据库创建有很多软件,如Access、SQL Sever、VFP等。我们使用Access数据库,可以用Access数据库开发软件创建,也可以用VB集成开发环境中的“可视化数据管理器”创建。,.
10、,16,数据库的创建,操作步骤,启动VB新建工程。 建立数据库。 (1)在VB集成开发环境中,单击“外接程序”“可视化数据管理器”,打开可视化数据管理器的“VisData”窗口,如图8.10所示。 (2)单击“文件”“新建”“Microsoft Access” “Version 7.0 MDB”,打开“选择要创建的Microsoft Access 数据库”对话框。 (3)在该对话框中数据要创建的数据库文件的名称, 指定保存的路径。一般将数据库保存在和工程文件 相同的文件夹中。,图8.10 可视化数据管理器窗口,.,17,数据库的创建,操作步骤,.,18,数据库的创建,操作步骤,3.建立数据表。
11、 (1)确定表结构。 员工基本信息表 员工工资表,.,19,数据库的创建,操作步骤,3.建立数据表。 (2)建立表结构。 在图8.11所示的“数据库窗口”的空白处右击,从弹出的快捷菜单中选择“新建表”,打开如图8.12所示的表结构对话框。 在“表名称”文本框中输入数据表的名称,“添加字段”按钮 所有字段添加之后,单击“生成表”。 (3)输入表记录。,图8.12 “表结构”对话框,.,20,数据库的创建,操作步骤,3.建立数据表。 (3)输入表记录。 双击表名称,即可 输入表记录,如图所示。,.,21,数据控件Data,员工基本信息浏览,要在Visual Basic中访问数据库,就要使用一个能够
12、访问数据库的控件。主要有Data控件、DAO控件、ADO控件等,其中Data控件 是Visual Basic内嵌的一个访问数据库的方便的工具。,实例演示,设计程序界面 添加Data控件,.,22,数据控件Data,使用Data控件连接数据库和数据表,设置Data控件属性 (1)Connect属性 Connect属性指定数据控件所要连接的数据库类型,VB默认的数据库是Access的MDB文件。此外,也可连接DBF、XLS、ODBC等类型的数据库。 (2)DatabaseName属性 DatabaseName属性指定具体使用的数据库文件名,包括所有的路径名。 本例中选wages.mdb。 注意:最
13、好将数据库文件和工程文件放在同一个文件夹下,这样设置其DatabaseName属性时只写文件名即可。否则,如果写绝对路径,则随着工程文件位置的改变,可能出现找不到数据库文件的错误。,.,23,数据控件Data,使用Data控件连接数据库和数据表,设置Data控件属性 (3)RecordSource属性 RecordSource属性确定具体可访问的数据,这些数据构成记录集对象的RecordSet对象。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。(本例这中选info) (4) RecordType属性 确定记录集类型,指定记录集的Table、Dyna
14、Set、SnapShot三种类型中的一种. 本例中因为只是浏览信息,无需修改记录,故可将其类型选为SnapShot,.,24,数据控件Data,将数据绑定控件绑定到Data控件,在Visual Basic中,数据控件本身不能直接显示记录集中的数据,必须通过能与它绑定的控件来实现。可与数据控件绑定的控件对象有文本框、标签、图像框、图形框、列表框、组合框、复选框、网格、DB列表框、DB网格和OLE容器等空间。 本例中的数据绑定控件为文本框。必须设置数据绑定控件的两个属性: (1) DataSource属性 通过指定一个有效的数据控件绑定控件连接到一个数据源上。 (2)DataField属性 设置数
15、据源中有效的字段使绑定控件与其建立联系。 本实例中分别设置几个文本框的上述两个属性。,.,25,数据控件Data,编写实现信息浏览的代码,Data控件本身就有浏览记录的功能,单击对应按钮可实现“第一条”、“上一条”、“下一条”和“最后一条”的功能。 但直接使用控件浏览不是很好看,可通过单击按钮完成。必须使用RecordSet记录集的属性和方法来实现。 (1) AbsolutePosition属性 AbsolutePosition属性返回当前指针值,如果是第1条记录,其值为0。该属性为只读属性。 在Data控件的Reposition事件中,修改Data控件的Caption属性。 (2)Recor
16、dCount属性 RecordCount属性对Recordset对象中的记录计数,为只读属性。 (3)BOF和EOF属性,.,26,数据控件Data,编写实现信息浏览的代码,主要方法 (1) Move方法 MoveFirst方法:移至第一条记录。 MoveLast方法:移至最后一条记录。 MoveNext方法:移至下一条记录。 MovePrevious方法:移至上一条记录。 Move n方法:向前或向后移动n条记录,n为指定的数值。 (2)Find 方法 RecordCount属性对Recordset对象中的记录计数,为只读属性。,.,27,数据控件Data,编写实现信息浏览的代码,主要方法
17、(2)Find 方法 使用Find方法可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录。共有如下四种Find方法: FindFirst方法:从记录集的开始查找满足条件的第1条记录。 FindLast方法:从记录集的尾部向前查找满足条件的第1条记录。 FindNext方法:从当前记录开始查找满足条件的下一条记录。 FindPrevious方法:从当前记录开始查找满足条件的上一条记录。 四种Find方法的语法格式相同: 数据集合.Find方法 条件 其中,条件是一个指定字段与常量关系的字符串表达式。,.,28,数据控件Data
18、,编写实现信息浏览的代码,在写条件时有以下几点需要说明: (1)在 语句Data1.Recordset.FindFirst 编号= & bh & 中,bh是个字符串变量,必须使用符号“&”进行字符串的连接,其两侧必须加空格。 (2)如果要查找的条件部分是个字符串常量,如查找编号为“000010”的记录,则要写成如下形式:Data1.Recordset.FindFirst 编号=000010。即字符串常量用单引号括起来。 (3)如果要查找的条件部分是个数值常量,如查找参考价格大于5000的记录,则要写成如下形式:Data1.Recordset.FindFirst 参考价格=5000 ,若将500
19、0存入整型变量jg,则写成:Data1.Recordset.FindFirst 参考价格= & jg (4)可以将条件部分存放在字符串变量中,然后在Find方法使用该字符串变量。如: Findstr=编号= & bh & Data1. Recordset.FindFirst Findstr,.,29,数据控件Data,编写实现信息浏览的代码,在写条件时有以下几点需要说明: (5)如果要进行模糊查询,如查找型号中含有字符“S”的笔记本电脑记录,则可以使用如下语句: Data1. Recordset.FindFirst 型号 Like *S* 其中Like是个运算符,*S*匹配型号字段中带有“S”
20、字符的所有型号的字符串。 (6)Find方法进行的查找在默认情况下是不区分大小写的。要改变默认查找方法,可在窗体的声明部分或声明模块中使用下列语句: Option Compare Text 不区分大小写 Option Compare Binary 区分大小写 (7)Find方法在找不到相匹配的记录时,当前记录保持在查找的起始处,NoMatch属性为True。如果Find方法找到相匹配的记录,则定位到该记录,Recordset的NoMatch属性为False。,.,30,数据控件Data,编写实现信息浏览的代码,数据控件的事件: (1)Reposition事件 Reposition事件发生在一条
21、记录成为当前记录后。只要改变记录集的指针使其从一条记录移到另一条记录,都会触发Reposition事件。通常,可在此事件中显示当前指针的位置。 (2)Validate事件 Validate事件是在移动到一条不同记录之前出现。此外,当修改或删除数据表中的记录前或卸载含有数据控件的窗体时都会触发Validate事件。Validate事件能检查被数据控件绑定的控件内的数据是否发生变化。它通过Save参数(True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。,.,31,数据控件Data,编写实现信息浏览的代码,表8.3 Validate事件的Acti
22、on参数,.,32,数据控件Data,员工基本信息维护,在前面浏览信息窗体中,只能浏览信息,却不能进行维护。在上面添加几个用于维护的按钮,界面设计如图:,实例演示,.,33,数据控件Data,员工基本信息维护,1.增加记录 AddNew方法在记录集中增加新记录。增加记录的步骤为: (1)调用AddNew方法 (2)给字段赋值,格式为:Recordset.Fields(字段名)=值 (3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库,提示: 如果使用AddNew方法增加了新记录,但是没有使用Update方法而移动到其他记录,或者关闭了记录集,那么所做的输入将全部丢失,而没有任
23、何警告。当调用Update方法写入记录后,记录指针自动从新记录返回到添加记录前的位置上,而不显示新记录。为此,可在调用Update方法后,使用MoveLast方法将记录指针再次移到新记录上。,.,34,数据控件Data,员工基本信息维护,2.删除记录 要从记录集中删除记录的操作分为三步: (1)定位被删除的记录使之成为当前记录。 (2)调用Delete方法。 (3)移动记录指针。,提示: 在使用Delete方法时,当前记录立即删除,不加任何的警告或者提示,可在Delete方法之前增加提示信息。删除一条记录后,被数据库所约束的绑定控件仍旧显示该记录的内容。因此,必须移动记录指针刷新绑定控件,一般
24、采用移至下一条记录的处理方法,并检查EOF属性。,.,35,数据控件Data,员工基本信息维护,3.修改记录 (1)调用Edit方法。 (2)给各字段赋值。 (3)调用Update方法,确定所做的修改。,提示: 如果要放弃对数据的修改,在使用Update方法之前,可使用UpdateControls方法或Refresh方法。,.,36,ADO控件与查询,员工工资信息维护,.添加控件 要使用ADO控件,必须先将其添加到工具箱中,具体方法如下: (1)单击“工程”“部件”,打开“部件”对话框,选择Microsoft ADO Data Control 6.0(OLEDB)。 (2)单击“确定”按钮,即
25、可将ADO控件 添加到工具箱中。,实例演示-实例8.2总,.,37,ADO控件与查询,员工工资信息维护,2.使用控件 要使ADO控件访问数据库,其实现过程如下: (1)在窗体上添加ADO数据控件。 (2)设置ADO控件的“ConnectionString”属性,建立与数据库提供者的连接。 (3)设置ADO控件的“RecordSource”属性,定义记录源和从记录源中产生记录集。 (4)设置数据绑定控件的“DataSource”和“DataField”属性,建立记录集与数据绑定控件的联系,并在窗体上显示数据供用户访问。,.,38,ADO控件与查询,员工工资信息维护,3.ADO控件属性 右击添加的
26、ADO控件,选择“ADODC属性”,打开“属性页”对话框: (1)ConnectionString属性 在对话框中,单击“生成”,打开“数据连接属性”对话框,选择“选择“Microsoft Jet 4.0 OLE DB Provider”;,.,39,ADO控件与查询,员工工资信息维护,3.ADO控件属性 (1)ConnectionString属性 单击“下一步”,选择或输入数据库名称,此处只输入“wages.mdb”,单击“测试连接”,看是否连接成功。,.,40,ADO控件与查询,员工工资信息维护,3.ADO控件属性 (2)RecordSource属性 该属性用来设置与ADO连接的数据库中的
27、记录集。在ADO“属性页”对话框中,单击“记录源”选项卡,其中有4种命令类型,可从中选择一种,如图8.30所示。 (1)8-adCmdUnknown:未知,为系统默认值。 (2)1-adCmdText:文本命令类型,使用SQL命令。 (3)2-adCmdTable:数据表。如果数据源记录集是单一表,可使用此方式。 (4)3-adCmdstoredProc:存储过程。,图8.30 “记录源”选项卡,.,41,ADO控件与查询,员工工资信息维护,3.ADO控件属性 (3)Fields属性 Recordset的Fields属性是一个集合,每个Field(字段)对象对应于Recordset中的一列,使
28、用Field对象的Value属性设置或返回当前记录的数据。 如:Adodc1.Recordset.Fields(编号)= 110001 即是对数据集中的“编号”字段进行赋值。如果“编号”字段是数据集中的第一个字段,还可使用如下方式使用: Adodc1.Recordset.Fields(0)= 110001,.,42,ADO控件与查询,员工工资信息维护,3.ADO控件属性 (3)Fields属性 Recordset的Fields属性是一个集合,每个Field(字段)对象对应于Recordset中的一列,使用Field对象的Value属性设置或返回当前记录的数据。 如:Adodc1.Records
29、et.Fields(编号)= 110001 即是对数据集中的“编号”字段进行赋值。如果“编号”字段是数据集中的第一个字段,还可使用如下方式使用: Adodc1.Recordset.Fields(0)= 110001,.,43,ADO控件与查询,员工工资信息维护,4. 数据绑定控件绑定DataGrid控件 (1)添加DataGrid控件 单击“工程”“部件”,在打开的对话框中选择“Microsoft DataGrid Control 6.0(OLEDB)”,将DataGrid控件添加到工具箱,在将其绘制到窗体上。 (2)在窗体上放置ADO控件并设置属性 (3)设置ADO控件的记录源 (4)设置D
30、ataGrid控件的DataSource属性,将DataGrid绑定到Ado (5)右击DataGrid控件,从弹出的快捷菜单中选择“检索字段”,则Ado记录集中的字段就显示在DataGrid控件上。 (6)右击DataGrid控件,从弹出的快捷菜单中选择“属性”,打开“属性页”对话框,可在此设置DataGrid控件的外观,如字体,背景,前景,是否有滚动条,是否允许添加、删除、修改等。,.,44,ADO控件与查询,员工工资信息维护,4. 数据绑定控件绑定DataGrid控件 (7)右击DataGrid控件,从弹出的快捷菜单中选择“编辑”,进入数据网格字段布局的编辑状态,此时,可将鼠标放在两个字
31、段的边线上,鼠标指针变成双向箭头时,可调整列宽。右击需要删除的字段名,从弹出的快捷菜单中选择“删除”,就可以从DataGrid控件中删除该字段。,图8.34 DataGrid控件的属性页,.,45,ADO控件与查询,员工工资信息维护,5. 实现记录的添加、删除和修改 (1)ADO控件的方法。,.,46,ADO控件与查询,员工工资信息维护,5. 实现记录的添加、删除和修改 (2)DataGrid控件属性。,.,47,ADO控件与查询,信息查询,1. Select语句格式 常见的Select语句包括六部分,其语法格式为: Select 字段名列表 From 表名 Where 条件 Group By
32、 分组字段 Having 分组条件 Order By 字段Asc|Desc,实例演示-信息查询,.,48,ADO控件与查询,信息查询,表8.6 合计函数,实例演示-信息统计,.,49,ADO控件与查询,信息查询,1.单表查询 2.多表查询 3.统计查询,.,50,报表制作,实例演示,实例演示-报表打印,.,51,报表制作,制作过程,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”窗口,.,52,报表制作,制作过程,1. 建立数据环境,(3)右击“Connection1”,从弹出的快捷菜单中选择“添加命令”,此时在“Connection1”下添加一个“Command1”,右击,选择“属性”,打开“Command1属性”对话框,如图8.44所示。,图8.44 “Command1属性”对话框,.,53,报表制作,制作过程,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语高一北师大版unit9单元测试
- 餐饮公司食品安全信息公示及共享协议
- 部门产品培训方案模板
- 烧烤店经营权及设备转让协议书
- 农村土房温暖改造方案
- 车辆借用与押金退还管理合同范本
- 建筑项目管理升级方案
- 拆迁安置补偿与房屋买卖服务合同
- 搜索能力面试题及答案
- 小学京剧面试题及答案
- 采茶厂员工行为规范检查监督制度
- 2025年中国航天日知识竞赛考试题库300题(含答案)
- 广东高一考数学试卷
- 信息安全培训的课件
- 工厂安全生产管理规范
- 2025年广东省中考物理试题卷(含答案)
- 医院五年建设发展规划(2025年)
- 秒懂艺术那些事智慧树知到期末考试答案章节答案2024年商丘师范学院
- 太阳完整分享
- 义务教育数学课程标准(2022年版)课件PPT
- 运动控制系统思考题参考答案阮毅
评论
0/150
提交评论