




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选,1,软件设计基础,河北理工大学,VB程序设计,精选,2,第8章数据库程序设计,本章学习目标:了解数据库的一些基本概念,掌握创建Access数据库的方法掌握使用DATA和ADO数据控件连接数据库和数据表的方法掌握数据识别控件绑定到ADO数据控件的方法掌握ADO控件的Recordset对象常用方法和属性理解ADO对象模型的概念,掌握使用ADO对象模型编程的方法和步骤掌握SQL查询语句在VB中的使用,精选,3,第8章数据库程序设计,本章重点ADO控件的Recordset对象的使用ADO对象模型的使用本章难点使用ADO对象模型编程实现数据库的访问,精选,4,学习内容,实例演示及分析数据库基本概念创建数据库和数据表数据控件DATA-常用控件的属性、事件和方法数据记录的增删改ADO数据控件和SQL查询-ADO访问数据模型、常用属性和方法绑定控件数据窗体向导数据报表制作,精选,5,员工工资管理系统,实例演示,在第6章讲解了文件,并用文件保存员工工资管理系统中的职工信息,实现了程序和数据的分离,但是使用文本文件保存和管理数据,保存的数据量小、安全性差、数据不直观,而且管理困难。数据库技术可以实现对数据进行科学的组织、存储和有效集中管理,而VB也为用户提供了访问数据库的功能。,实例演示-实例8.1(实例8.1总),精选,6,员工工资管理系统,问题分析,本章的目标是将第6章以文本文件为数据源的员工工资管理系统改为以数据库为数据源的员工工资管理系统。数据库管理系统是对数据实施有效集中管理的专门软件,这样的管理方式相对以文本文件为数据源方式的功能强、效率高,保存的数据量大,安全性好。,精选,7,员工工资管理系统,问题分析,根据系统的功能需求分析,设计完成该系统,必须首先创建一个数据库,用以保存员工的基本信息,这样才可以在VisualBasic中调用数据库中的数据,并以某种方式显示出来。要设计一个具有数据信息管理功能的系统,需要下面几个步骤:(1)确定并设计系统需要的数据库和数据表,并创建数据库和数据表。(2)新建工程,根据要求设计界面。(3)实现VB工程与数据库的连接。(4)编写代码实现相应功能。,精选,8,数据库基本概念,数据库系统,1.数据库数据是指能被计算机存储和处理的反映客观实体信息的物理符号。数字、文字、表格、音频、视频、图形、图像和动画等都被称为数据。数据库(DataBase,简记为DB)则是为某种特殊目的而组织起来的记录和文件的集合。2.数据库管理系统数据库管理系统(DataBaseManageSystem,简称为DBMS),是数据库系统中对数据进行管理的专门软件,是数据库系统的核心组成部分,对数据库的所有操作和控制,都是通过DBMS来进行的。3.数据库应用系统是在某种DBMS的支持下,根据实际应用的需要,开发出来的应用程序包,精选,9,数据库基本概念,关系数据库,1.数据模型数据模型是表示数据及数据之间联系的结构方式。在实际的数据处理中,先将现实世界的事物及其联系抽象为信息世界的信息模型,再将信息模型抽象转化为计算机世界的数据模型。数据模型的好坏直接影响数据库的性能。数据模型的设计方法决定着数据库的设计方法,目前流行的模型有:网状模型、层次模型和关系模型。(1)网状模型是用图结构来表示数据之间的联系。(2)层次模型是用树结构来表示数据之间的联系。(3)关系模型是用二维表结构来表示数据之间的联系。关系模型是一种较先进的模型,目前几乎所有的现代DBMS都使用关系数据库模型来存储和处理信息。在关系数据库管理系统中,系统以表的形式管理所有数据。,精选,10,数据库基本概念,关系数据库,2.关系数据库关系数据库是以关系模型为基础的数据库,它由以下三部分组成:(1)数据结构模型所操作的对象、类型的集合。(2)完整性规则保证数据有效、正确的约束条件。(3)数据操作对模型对象所允许执行的操作方式。3.关系表(1)关系:关系(Relation)是一个由行和列组成的二维表格,也称为关系表或表。(2)字段:表由若干行和若干列组成,每一列称为字段(Field)。(3)记录:表中的每一行称为记录(Record)。(4)值:在表中的行和列,凡记录和字段的相交处就是值存储的数据元素。(5)表的主键和索引:,精选,11,数据库基本概念,关系数据库,精选,12,数据库基本概念,关系数据库,4.记录集数据库可以由多个表组成,表与表之间可以用不同的方式相互关联。例如在笔记本信息管理数据库中还有一个基本配置表,其结构如图8.8所示。在该表中只需一个编号字段引用笔记本的品牌和价格信息等,而不必重复每一个字段,通过两个表中相同的编号字段就可以把笔记本的配置信息和价格信息等联系起来了。,图8.8基本配置表的结构,精选,13,数据库基本概念,关系数据库,4.记录集在VisualBasic中,可以将一个或几个表中的数据构成记录集RecordSet对象,记录集也由行和列构成,它与表类似,如图8.9所示。,精选,14,数据库基本概念,关系数据库,4.记录集在VisualBasic中数据库内的表格不允许直接访问,而只能通过记录集对象进行记录的操作和浏览,因此,记录集是一种浏览数据库的工具。用户可根据需要,通过使用记录集对象选择数据。,记录集有三种类型:表类型(Table):表类型的RecordSet对象是当前数据库真实的数据表。它比其他类型的记录集处理速度都快,但需要大量的内存开销。动态集类型(DynaSet):动态集类型的RecordSet对象是可以更新的数据集,它实际上是对一个或者几个表中的记录的引用。快照类型(SnapShot):快照类型的RecordSet对象是静态数据的显示。它包含的数据是固定的,记录集为只读状态,它反映了在产生快照的一瞬间数据库的状态。快照是最缺少灵活性的记录集,但它所需要的内存开销最少。如果只是浏览记录,可以用快照类型,精选,15,数据库的创建,任务分析,在员工工资管理系统中,要保存员工个人信息,即员工编号、姓名、年龄、所在部门、职位等,还要保存员工工资信息,即员工编号、基本工资、奖金、各种补助。因此需要建立一个数据库,库中要有两张表。数据库创建有很多软件,如Access、SQLSever、VFP等。我们使用Access数据库,可以用Access数据库开发软件创建,也可以用VB集成开发环境中的“可视化数据管理器”创建。,精选,16,数据库的创建,操作步骤,启动VB新建工程。建立数据库。(1)在VB集成开发环境中,单击“外接程序”“可视化数据管理器”,打开可视化数据管理器的“VisData”窗口,如图8.10所示。(2)单击“文件”“新建”“MicrosoftAccess”“Version7.0MDB”,打开“选择要创建的MicrosoftAccess数据库”对话框。(3)在该对话框中数据要创建的数据库文件的名称,指定保存的路径。一般将数据库保存在和工程文件相同的文件夹中。,图8.10可视化数据管理器窗口,精选,17,数据库的创建,操作步骤,精选,18,数据库的创建,操作步骤,3.建立数据表。(1)确定表结构。员工基本信息表员工工资表,精选,19,数据库的创建,操作步骤,3.建立数据表。(2)建立表结构。在图8.11所示的“数据库窗口”的空白处右击,从弹出的快捷菜单中选择“新建表”,打开如图8.12所示的表结构对话框。在“表名称”文本框中输入数据表的名称,“添加字段”按钮所有字段添加之后,单击“生成表”。(3)输入表记录。,图8.12“表结构”对话框,精选,20,数据库的创建,操作步骤,3.建立数据表。(3)输入表记录。双击表名称,即可输入表记录,如图所示。,精选,21,数据控件Data,员工基本信息浏览,要在VisualBasic中访问数据库,就要使用一个能够访问数据库的控件。主要有Data控件、DAO控件、ADO控件等,其中Data控件是VisualBasic内嵌的一个访问数据库的方便的工具。,实例演示,设计程序界面添加Data控件,精选,22,数据控件Data,使用Data控件连接数据库和数据表,设置Data控件属性(1)Connect属性Connect属性指定数据控件所要连接的数据库类型,VB默认的数据库是Access的MDB文件。此外,也可连接DBF、XLS、ODBC等类型的数据库。(2)DatabaseName属性DatabaseName属性指定具体使用的数据库文件名,包括所有的路径名。本例中选wages.mdb。注意:最好将数据库文件和工程文件放在同一个文件夹下,这样设置其DatabaseName属性时只写文件名即可。否则,如果写绝对路径,则随着工程文件位置的改变,可能出现找不到数据库文件的错误。,精选,23,数据控件Data,使用Data控件连接数据库和数据表,设置Data控件属性(3)RecordSource属性RecordSource属性确定具体可访问的数据,这些数据构成记录集对象的RecordSet对象。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。(本例这中选info)(4)RecordType属性确定记录集类型,指定记录集的Table、DynaSet、SnapShot三种类型中的一种.本例中因为只是浏览信息,无需修改记录,故可将其类型选为SnapShot,精选,24,数据控件Data,将数据绑定控件绑定到Data控件,在VisualBasic中,数据控件本身不能直接显示记录集中的数据,必须通过能与它绑定的控件来实现。可与数据控件绑定的控件对象有文本框、标签、图像框、图形框、列表框、组合框、复选框、网格、DB列表框、DB网格和OLE容器等空间。本例中的数据绑定控件为文本框。必须设置数据绑定控件的两个属性:(1)DataSource属性通过指定一个有效的数据控件绑定控件连接到一个数据源上。(2)DataField属性设置数据源中有效的字段使绑定控件与其建立联系。本实例中分别设置几个文本框的上述两个属性。,精选,25,数据控件Data,编写实现信息浏览的代码,Data控件本身就有浏览记录的功能,单击对应按钮可实现“第一条”、“上一条”、“下一条”和“最后一条”的功能。但直接使用控件浏览不是很好看,可通过单击按钮完成。必须使用RecordSet记录集的属性和方法来实现。(1)AbsolutePosition属性AbsolutePosition属性返回当前指针值,如果是第1条记录,其值为0。该属性为只读属性。在Data控件的Reposition事件中,修改Data控件的Caption属性。(2)RecordCount属性RecordCount属性对Recordset对象中的记录计数,为只读属性。(3)BOF和EOF属性,精选,26,数据控件Data,编写实现信息浏览的代码,主要方法(1)Move方法MoveFirst方法:移至第一条记录。MoveLast方法:移至最后一条记录。MoveNext方法:移至下一条记录。MovePrevious方法:移至上一条记录。Moven方法:向前或向后移动n条记录,n为指定的数值。(2)Find方法RecordCount属性对Recordset对象中的记录计数,为只读属性。,精选,27,数据控件Data,编写实现信息浏览的代码,主要方法(2)Find方法使用Find方法可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录。共有如下四种Find方法:FindFirst方法:从记录集的开始查找满足条件的第1条记录。FindLast方法:从记录集的尾部向前查找满足条件的第1条记录。FindNext方法:从当前记录开始查找满足条件的下一条记录。FindPrevious方法:从当前记录开始查找满足条件的上一条记录。四种Find方法的语法格式相同:数据集合.Find方法条件其中,条件是一个指定字段与常量关系的字符串表达式。,精选,28,数据控件Data,编写实现信息浏览的代码,在写条件时有以下几点需要说明:(1)在语句Data1.Recordset.FindFirst编号=&bh&中,bh是个字符串变量,必须使用符号“&”进行字符串的连接,其两侧必须加空格。(2)如果要查找的条件部分是个字符串常量,如查找编号为“000010”的记录,则要写成如下形式:Data1.Recordset.FindFirst编号=000010。即字符串常量用单引号括起来。(3)如果要查找的条件部分是个数值常量,如查找参考价格大于5000的记录,则要写成如下形式:Data1.Recordset.FindFirst参考价格=5000,若将5000存入整型变量jg,则写成:Data1.Recordset.FindFirst参考价格=&jg(4)可以将条件部分存放在字符串变量中,然后在Find方法使用该字符串变量。如:Findstr=编号=&bh&Data1.Recordset.FindFirstFindstr,精选,29,数据控件Data,编写实现信息浏览的代码,在写条件时有以下几点需要说明:(5)如果要进行模糊查询,如查找型号中含有字符“S”的笔记本电脑记录,则可以使用如下语句:Data1.Recordset.FindFirst型号Like*S*其中Like是个运算符,*S*匹配型号字段中带有“S”字符的所有型号的字符串。(6)Find方法进行的查找在默认情况下是不区分大小写的。要改变默认查找方法,可在窗体的声明部分或声明模块中使用下列语句:OptionCompareText不区分大小写OptionCompareBinary区分大小写(7)Find方法在找不到相匹配的记录时,当前记录保持在查找的起始处,NoMatch属性为True。如果Find方法找到相匹配的记录,则定位到该记录,Recordset的NoMatch属性为False。,精选,30,数据控件Data,编写实现信息浏览的代码,数据控件的事件:(1)Reposition事件Reposition事件发生在一条记录成为当前记录后。只要改变记录集的指针使其从一条记录移到另一条记录,都会触发Reposition事件。通常,可在此事件中显示当前指针的位置。(2)Validate事件Validate事件是在移动到一条不同记录之前出现。此外,当修改或删除数据表中的记录前或卸载含有数据控件的窗体时都会触发Validate事件。Validate事件能检查被数据控件绑定的控件内的数据是否发生变化。它通过Save参数(True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。,精选,31,数据控件Data,编写实现信息浏览的代码,表8.3Validate事件的Action参数,精选,32,数据控件Data,员工基本信息维护,在前面浏览信息窗体中,只能浏览信息,却不能进行维护。在上面添加几个用于维护的按钮,界面设计如图:,实例演示,精选,33,数据控件Data,员工基本信息维护,1.增加记录AddNew方法在记录集中增加新记录。增加记录的步骤为:(1)调用AddNew方法(2)给字段赋值,格式为:Recordset.Fields(字段名)=值(3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库,提示:如果使用AddNew方法增加了新记录,但是没有使用Update方法而移动到其他记录,或者关闭了记录集,那么所做的输入将全部丢失,而没有任何警告。当调用Update方法写入记录后,记录指针自动从新记录返回到添加记录前的位置上,而不显示新记录。为此,可在调用Update方法后,使用MoveLast方法将记录指针再次移到新记录上。,精选,34,数据控件Data,员工基本信息维护,2.删除记录要从记录集中删除记录的操作分为三步:(1)定位被删除的记录使之成为当前记录。(2)调用Delete方法。(3)移动记录指针。,提示:在使用Delete方法时,当前记录立即删除,不加任何的警告或者提示,可在Delete方法之前增加提示信息。删除一条记录后,被数据库所约束的绑定控件仍旧显示该记录的内容。因此,必须移动记录指针刷新绑定控件,一般采用移至下一条记录的处理方法,并检查EOF属性。,精选,35,数据控件Data,员工基本信息维护,3.修改记录(1)调用Edit方法。(2)给各字段赋值。(3)调用Update方法,确定所做的修改。,提示:如果要放弃对数据的修改,在使用Update方法之前,可使用UpdateControls方法或Refresh方法。,精选,36,ADO控件与查询,员工工资信息维护,.添加控件要使用ADO控件,必须先将其添加到工具箱中,具体方法如下:(1)单击“工程”“部件”,打开“部件”对话框,选择MicrosoftADODataControl6.0(OLEDB)。(2)单击“确定”按钮,即可将ADO控件添加到工具箱中。,实例演示-实例8.2总,精选,37,ADO控件与查询,员工工资信息维护,2.使用控件要使ADO控件访问数据库,其实现过程如下:(1)在窗体上添加ADO数据控件。(2)设置ADO控件的“ConnectionString”属性,建立与数据库提供者的连接。(3)设置ADO控件的“RecordSource”属性,定义记录源和从记录源中产生记录集。(4)设置数据绑定控件的“DataSource”和“DataField”属性,建立记录集与数据绑定控件的联系,并在窗体上显示数据供用户访问。,精选,38,ADO控件与查询,员工工资信息维护,3.ADO控件属性右击添加的ADO控件,选择“ADODC属性”,打开“属性页”对话框:(1)ConnectionString属性在对话框中,单击“生成”,打开“数据连接属性”对话框,选择“选择“MicrosoftJet4.0OLEDBProvider”;,精选,39,ADO控件与查询,员工工资信息维护,3.ADO控件属性(1)ConnectionString属性单击“下一步”,选择或输入数据库名称,此处只输入“wages.mdb”,单击“测试连接”,看是否连接成功。,精选,40,ADO控件与查询,员工工资信息维护,3.ADO控件属性(2)RecordSource属性该属性用来设置与ADO连接的数据库中的记录集。在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中的一列,使用Field对象的Value属性设置或返回当前记录的数据。如:Adodc1.Recordset.Fields(编号)=110001即是对数据集中的“编号”字段进行赋值。如果“编号”字段是数据集中的第一个字段,还可使用如下方式使用:Adodc1.Recordset.Fields(0)=110001,精选,42,ADO控件与查询,员工工资信息维护,3.ADO控件属性(3)Fields属性Recordset的Fields属性是一个集合,每个Field(字段)对象对应于Recordset中的一列,使用Field对象的Value属性设置或返回当前记录的数据。如:Adodc1.Recordset.Fields(编号)=110001即是对数据集中的“编号”字段进行赋值。如果“编号”字段是数据集中的第一个字段,还可使用如下方式使用:Adodc1.Recordset.Fields(0)=110001,精选,43,ADO控件与查询,员工工资信息维护,4.数据绑定控件绑定DataGrid控件(1)添加DataGrid控件单击“工程”“部件”,在打开的对话框中选择“MicrosoftDataGridControl6.0(OLEDB)”,将DataGrid控件添加到工具箱,在将其绘制到窗体上。(2)在窗体上放置ADO控件并设置属性(3)设置ADO控件的记录源(4)设置DataGrid控件的DataSource属性,将DataGrid绑定到Ado(5)右击DataGrid控件,从弹出的快捷菜单中选择“检索字段”,则Ado记录集中的字段就显示在DataGrid控件上。(6)右击DataGrid控件,从弹出的快捷菜单中选择“属性”,打开“属性页”对话框,可在此设置DataGrid控件的外观,如字体,背景,前景,是否有滚动条,是否允许添加、删除、修改等。,精选,44,ADO控件与查询,员工工资信息维护,4.数据绑定控件绑定DataGrid控件(7)右击DataGrid控件,从弹出的快捷菜单中选择“编辑”,进入数据网格字段布局的编辑状态,此时,可将鼠标放在两个字段的边线上,鼠标指针变成双向箭头时,可调整列宽。右击需要删除的字段名,从弹出的快捷菜单中选择“删除”,就可以从DataGrid控件中删除该字段。,图8.34DataGrid控件的属性页,精选,45,ADO控件与查询,员工工资信息维护,5.实现记录的添加、删除和修改(1)ADO控件的方法。,精选,46,ADO控件与查询,员工工资信息维护,5.实现记录的添加、删除和修改(2)DataGrid控件属性。,精选,47,ADO控件与查询,信息查询,1.Select语句格式常见的Select语句包括六部分,其语法格式为:Select字段名列表From表名Where条件GroupBy分组字段Having分组条件OrderBy字段Asc|Desc,实例演示-信息查询,精选,48,ADO控件与查询,信息查询,表8.6合计函数,实例演示-信息统计,精选,49,ADO控件与查询,信息查询,1.单表查询2.多表查询3.统计查询,精选,50,报表制作,实例演示,实例演示-报表打印,精选,51,报表制作,制作过程,1.建立数据环境,(1)单击“工程”“添加DataEnvironment”,打开如图8.43所示的“DataEnvironment”窗口;(2)右击“Connection1”,从弹出的快捷菜单中选择“属性”,打开数据链接属性对话框,与图8.27一样,按照向导依次选择提供程序、连接数据库的路径和名称,并测试是否连接成功。此例中选择“MicrosoftJet4.0OLEDBProvider”,数据库选择“wage.mdb”。,图8.43“DataEnvironment”窗口,精选,52,报表制作,制作过程,1.建立数据环境,(3)右击“Connection1”,从弹出的快捷菜单中选择“添加命令”,此时在“Connection1”下添加一个“Command1”,右击,选择“属性”,打开“Command1属性”对话框,如图8.44所示。,图8.44“Command1属性”对话框,精选,53,报表制作,制作过程,1.建立数据环境,(4)设置数据源,可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 榆林能源科技职业学院《建筑制图二》2024-2025学年第一学期期末试卷
- 湖北科技职业学院《微生物学(双语)》2024-2025学年第一学期期末试卷
- 淮南职业技术学院《体育保健学含实验》2024-2025学年第一学期期末试卷
- 河北石油职业技术大学《概率统计》2024-2025学年第一学期期末试卷
- 江西枫林涉外经贸职业学院《教学技能与微格训练》2024-2025学年第一学期期末试卷
- 浙江艺术职业学院《创业教育》2024-2025学年第一学期期末试卷
- 呼吸康复诊疗流程图解
- 淄博职业学院《生物技术综合实验》2024-2025学年第一学期期末试卷
- 天津滨海职业学院《农业微生物学》2024-2025学年第一学期期末试卷
- 武昌首义学院《高层建筑结构》2024-2025学年第一学期期末试卷
- 公司反恐防暴管理制度
- 《宜宾陈酿草本白酒》标准编制说明
- 政治●广西卷丨2024年广西普通高中学业水平选择性考试高考政治真题试卷及答案
- 合肥民政局离婚协议书
- ISO27001:2022信息安全管理手册+全套程序文件+表单
- 钳工理论考试试题及答案
- 2025年中考英语高频词汇分类记忆《背诵版+默写版》
- 铝业公司日常管理制度
- 血透患者护理常规
- 跨境运营日常管理制度
- 音乐会礼仪知识
评论
0/150
提交评论