《数据库的基本应用.ppt》由会员分享,可在线阅读,更多相关《数据库的基本应用.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大学计算机基础教程TaiYuan University of Technology第第1313章章 数据库的基本应用数据库的基本应用Visual Basic 程序设计教程程序设计教程 第第12章章我我们们介介绍绍了了文文件件的的基基本本操操作作,实实际际上上使使用用数数据据库库来来存存储储和和管管理理数数据据将将比比文文件件操操作作有有更更高高的的效效率率。VB具具有有了了强强大大的的数数据据库库操操作作功功能能,使使程程序序开开发发人人员员可可以以轻轻松松地地开开发发出出各各种种数数据据库库应应用程序。用程序。2Visual Basic程序设计教程本章介绍:本章介绍:数据库的基本概念数据库的
2、基本概念VB可视化数据库管理器的用法可视化数据库管理器的用法VB操作数据库的两种工具操作数据库的两种工具 DATA数据控件数据控件 ADO数据对象数据对象显示数据的基本方法。显示数据的基本方法。3Visual Basic程序设计教程13.1.1 关系数据库关系数据库1.数据库和数据表数据库和数据表 数数据据库库(DateBse)是是许许多多相相关关数数据据根根据据一一定定的的原原则则构构成成的的数数据据集集合合。一一个个数数据据库库由由一一个个或或多多个个数数据据表表(Table)组成。组成。数数据据表表中中的的一一列列称称为为一一个个字字段段或或域域(Field),表表中中的的一行数据称为一
3、条记录一行数据称为一条记录(Record)。同一个表中字段名不允许重名同一个表中字段名不允许重名 表中同一字段的数据类型相同表中同一字段的数据类型相同 所有记录具有同样的字段所有记录具有同样的字段4Visual Basic程序设计教程学生基本情况表 5Visual Basic程序设计教程13.1.2 可视化数据管理器可视化数据管理器2.VB可访问的数据库可访问的数据库 VB默默认认的的数数据据库库格格式式与与Access格格式式相相同同,其其默默认的数据库文件认的数据库文件(.mdb)称为内部数据库。称为内部数据库。除此之外,在除此之外,在VB中还可以访问:中还可以访问:外外部部数数据据库库,
4、如如dBASE、FoxPro、Paradox等等ISAM(索索 引引 顺顺 序序 访访 问问 方方 法法)数数 据据 库库,以以 及及Lotus123和和Excel等电子表格数据列表等电子表格数据列表ODBC(开放式数据互接开放式数据互接)数据库,如数据库,如SQLServer等等6Visual Basic程序设计教程可视化数据管理器是可视化数据管理器是VB提供的一个数据库提供的一个数据库操作的实用工具,使用它可以方便地建立数据库,操作的实用工具,使用它可以方便地建立数据库,并对数据表的记录进行增加、删除、修改及查询。并对数据表的记录进行增加、删除、修改及查询。VB默认的数据库是默认的数据库是
5、Access,扩展名是,扩展名是.mdb。7Visual Basic程序设计教程1启动可视化数据管理器图启动可视化数据管理器图 在在VB IDE中,打开中,打开“外接程序外接程序”菜单的菜单的“可视可视化数据管理器化数据管理器”命令,即打开可视命令,即打开可视化数据管理器的化数据管理器的“VisData”窗口,如图所示。窗口,如图所示。8Visual Basic程序设计教程2.2.建立数据库的表结构建立数据库的表结构建立数据库的表结构建立数据库的表结构 建立数据库建立数据库建立数据库建立数据库新建数据表新建数据表新建数据表新建数据表确定数据表的字段以及字段确定数据表的字段以及字段确定数据表的字
6、段以及字段确定数据表的字段以及字段名、类型和长度等信息名、类型和长度等信息名、类型和长度等信息名、类型和长度等信息 【例例例例】建立一个学生建立一个学生建立一个学生建立一个学生.mdbmdb数据库,在该库中新建一个名为学生基数据库,在该库中新建一个名为学生基数据库,在该库中新建一个名为学生基数据库,在该库中新建一个名为学生基本情况表的数据表。本情况表的数据表。本情况表的数据表。本情况表的数据表。字段名字段名字段名字段名学号学号学号学号姓名姓名姓名姓名性性性性别别别别出生日期出生日期出生日期出生日期籍籍籍籍贯贯贯贯专业专业专业专业类类类类型型型型TextTextTextTextTextTextD
7、ata/TimeData/TimeTextTextTextText长长长长度度度度7 78 82 28 810102020操作步骤:建立数据库操作步骤:建立数据库操作步骤:建立数据库操作步骤:建立数据库新建数据表新建数据表新建数据表新建数据表建立表索引建立表索引建立表索引建立表索引(可选可选可选可选)生成表生成表生成表生成表 9Visual Basic程序设计教程3.修改表结构修改表结构 “数据库窗口数据库窗口”快捷菜单中快捷菜单中“设计设计”命令命令 4.输入、编辑、删除记录输入、编辑、删除记录 在在“数据库窗口数据库窗口”中双击数据表中双击数据表10Visual Basic程序设计教程13
8、.1.3 使用使用SQLSQL语句语句结构化查询语言(结构化查询语言(SQL)是一种操作关系数据库的)是一种操作关系数据库的工业标准语言。工业标准语言。SQL由一系列由一系列SQL语句组成。用户语句组成。用户可以在可以在“SQL语句语句”窗口中输入窗口中输入SQL语句,也可以语句,也可以在程序中使用在程序中使用SQL语句中来实现各种功能。下面介语句中来实现各种功能。下面介绍绍SQL的基本语句。的基本语句。11Visual Basic程序设计教程1SELECT语句。语句。SELECT语句可以从一个或多个表中选取特定的行语句可以从一个或多个表中选取特定的行和列。该语句基本格式如下和列。该语句基本格
9、式如下:SELECT 字段名列表字段名列表 From 表名表名 Where 查询条件查询条件Order By 排序字段排序字段ASC|DESC,【例例】:ELECT 学号学号,姓名姓名,性别性别 From 学生基本情况表学生基本情况表 Where 专业专业计算机计算机应用应用SELECT*From 学生基本情况表学生基本情况表 Where 性别性别女女 Order By 专业专业 12Visual Basic程序设计教程2Insert语句。语句。Insert语句用于向数据表中追加一条记录。语句格语句用于向数据表中追加一条记录。语句格式如下:式如下:Insert Into 表名表名(字段列表字段
10、列表)Values(字段值表字段值表)例如例如 Insert Into 学生成绩表学生成绩表(学号学号,英语英语,程序设计程序设计)Values(2001006,85,88)13Visual Basic程序设计教程3Delete语句。语句。Delete语句用于删除指定条件的记录。语句格式语句用于删除指定条件的记录。语句格式如下:如下:Delete From表名表名 Where条件条件 说明:默认说明:默认Where子句,将删除指定表中的所有子句,将删除指定表中的所有记录。记录。例如例如 Delete From 学生成绩表学生成绩表 Where 学号学号=200100614Visual Basi
11、c程序设计教程4Update语句。语句。Update语句用于修改指定条件的记录。语句用于修改指定条件的记录。语句格式如下:语句格式如下:Update 表名表名 Set 字段字段=表达式表达式,字段字段=表达式表达式,Where 条件条件 例如,修改学生基本情况表中学号为例如,修改学生基本情况表中学号为“2001005”的专业,可使用的的专业,可使用的Update语句如下:语句如下:Update 学生基本情况表学生基本情况表 Set 专业专业=计算机应用计算机应用 Where 学学=200100515Visual Basic程序设计教程【例例13-1】修改例修改例11-1程序,用数据库方法进行用
12、户名程序,用数据库方法进行用户名和密码验证。界面如图所示,和密码验证。界面如图所示,frmlogin窗体中添加了一窗体中添加了一个个Data控件。控件。16Visual Basic程序设计教程 建立管理员表,在管理员表中添加记录。建立管理员表,在管理员表中添加记录。Data控件属性设置控件属性设置属性属性属性属性值值说说明明名称名称Data1ConnectAccess 连连接数据接数据库类库类型型DatabaseName学生学生.mdb数据数据库库名称名称VisibleFalse不可不可见见17Visual Basic程序设计教程 Private Sub cmdOK_Click()Dim Sq
13、l As string Sql=select*from 管理员表管理员表 where 用户名用户名=+UserName.Text+Sql=Sql+and 密码密码=+Password.Text+Data1.RecordSource=Sql 用用Sql语句返回记录集语句返回记录集 Data1.Refresh 刷新数据库刷新数据库 If Not Data1.Recordset.EOF And nPass 3 Then 在数据库中找到在数据库中找到了对应的用户名和密码了对应的用户名和密码 frmLogin.Hide frmmain.Show Else End If End Sub18Visual B
14、asic程序设计教程1.窗体上添加窗体上添加Data控件控件 2.三个重要属性三个重要属性Connect:指定所连接的数据库类型,默认为指定所连接的数据库类型,默认为AccessDatabaseName:选择要访问的数据库文件选择要访问的数据库文件 RecordSource:确确定定要要访访问问的的数数据据来来源源(数数据据表表或或SQL查询语句查询语句)3.其它常用属性其它常用属性RecordSetType:设置设置记录集记录集的类型的类型ReadOnly:设置是否以只读方式打开数据库设置是否以只读方式打开数据库 19Visual Basic程序设计教程13.3.1 Data控件的常用属性控
15、件的常用属性 程序运行时,根据程序运行时,根据Data控件设置的属性打开控件设置的属性打开数据库,返回一个记录集对象数据库,返回一个记录集对象(RecordSet),RecordSet对象提供和物理数据库相应的一组逻对象提供和物理数据库相应的一组逻辑记录。辑记录。Data控件对数据的操作主要是对控件对数据的操作主要是对RecordSet对象进行的,对象进行的,RecordSet对象也有自对象也有自己的属性和方法。己的属性和方法。20Visual Basic程序设计教程属性属性说说明明BOF记录记录指指针针是否指向是否指向RecordSet对对象第一条象第一条记录记录之前之前EOF记录记录指指针
16、针是否指向是否指向RecordSet对对象最后一条象最后一条记录记录之后之后RecordCount返回返回RecordSet对对象的象的记录记录的个数的个数AbsolutePosition返回当前返回当前记录记录的的记录记录号。取号。取值值范范围围从从0开始,到开始,到RecordCount-1。NoMatch用用Find查询查询方法在表中方法在表中查询满查询满足某一条件的足某一条件的记录记录,如,如果未找到符合条件的果未找到符合条件的记录记录,则该则该属性属性值为值为True,否,否则则值为值为False。Fields记录记录集中的字段,集中的字段,Fields(i)表示当前表示当前记录记录
17、的第的第i个字段,个字段,i从从0开始;开始;Fields(字段名字段名)表示当前表示当前记录记录的指定字段的指定字段21Visual Basic程序设计教程13.3.2 Data控件和控件和RecordSet对象的常用方法对象的常用方法1Data控件的常用方法控件的常用方法(1)Refresh方法方法格式:格式:Data控件名控件名.Refresh在程序运行中,如改变了在程序运行中,如改变了Data控件的控件的Connect、DatabaseName、RecordSource或或ReadOnly等属性等属性的值,则必须调用的值,则必须调用Refresh方法,使所作的更改生效。方法,使所作的更
18、改生效。22Visual Basic程序设计教程(2)UpdateRecord方法方法格式:格式:Data控件名控件名.UpdateRecord当用户对数据库作了修改后,调用此方法使所作的修当用户对数据库作了修改后,调用此方法使所作的修改生效。改生效。UpdateRecord 方法只保存那些来自被绑定方法只保存那些来自被绑定的控件。的控件。23Visual Basic程序设计教程2RecordSet对象的常用方法对象的常用方法(1)记录的定位方法)记录的定位方法格式:格式:Data控件名控件名.RecordSet.方法名方法名功能:在记录集上前后移动以改变当前记录。其中方功能:在记录集上前后移
19、动以改变当前记录。其中方法有:法有:MoveFirst:将记录指针定位到第一条记录。:将记录指针定位到第一条记录。MoveLast:将记录指针定位到最后一条记录。:将记录指针定位到最后一条记录。24Visual Basic程序设计教程MoveNext:将记录指针定位到下一条记录。:将记录指针定位到下一条记录。MovePrevious:将记录指针定位到上一条记录。将记录指针定位到上一条记录。(2)Update方法方法格式:格式:Data控件名控件名.RecordSet.Update功能:更新记录内容。通常在调用了功能:更新记录内容。通常在调用了Addnew方法后,方法后,调用该方法。调用该方法。
20、25Visual Basic程序设计教程(3)AddNew方法方法格式:格式:Data控件名控件名.RecordSet.AddNew功能:添加一条新的空白记录。用户可以给当前记录的功能:添加一条新的空白记录。用户可以给当前记录的各字段赋值,然后调用各字段赋值,然后调用Update方法对数据表更新,否则方法对数据表更新,否则用用AddNew方法添加的记录无效。例如:方法添加的记录无效。例如:Data1.RecordSet.AddNew Data1.RecordSet.Fields(0)=王刚王刚Data1.RecordSet.Update26Visual Basic程序设计教程(4)Delete
21、方法方法格式:格式:Data控件名控件名.RecordSet.Delete功能:删除当前记录。使用该方法删除一条记录后,功能:删除当前记录。使用该方法删除一条记录后,需用需用MoveNext方法将记录指针移到下一条记录。方法将记录指针移到下一条记录。27Visual Basic程序设计教程(5)Edit方法方法格式:格式:Data控件名控件名.RecordSet.Edit功能:将当前记录的内容进行修改之前,使用功能:将当前记录的内容进行修改之前,使用Edit方法使记录处于编辑状态。与方法使记录处于编辑状态。与Addnew方法类似,方法类似,必须再调用必须再调用Update或或UpdateRec
22、ord方法来更新,方法来更新,才使用所作的修改生效。才使用所作的修改生效。28Visual Basic程序设计教程(6)记录的查询方法)记录的查询方法格式:格式:Data控件名控件名.RecordSet.方法名方法名功能:在记录集中查询满足条件的记录。如果找到满足条功能:在记录集中查询满足条件的记录。如果找到满足条件的记录,则记录指针将定位在找到的记录上。如果找不件的记录,则记录指针将定位在找到的记录上。如果找不到满足条件的记录,则记录指针将定位记录集的末尾。其到满足条件的记录,则记录指针将定位记录集的末尾。其中方法有:中方法有:FindFirst:查询满足条件的第一条记录。:查询满足条件的第
23、一条记录。FindLast:查询满足条件的最后一条记录。:查询满足条件的最后一条记录。FindNext:从当前记录开始往后查找满足条件的第一条记录。:从当前记录开始往后查找满足条件的第一条记录。FindPrevious:从当前记录开始往前查找满足条件的第一条记录。:从当前记录开始往前查找满足条件的第一条记录。29Visual Basic程序设计教程 通常可以使用通常可以使用Find方法查找某字段的值与一方法查找某字段的值与一表达式的值相匹配的记录,通过表达式的值相匹配的记录,通过NoMatch属性判属性判断是否找到。例如,在断是否找到。例如,在“学生基本情况表学生基本情况表”中,中,查找第一条
24、姓名为查找第一条姓名为“王东王东”的记录,可以用如下的记录,可以用如下的语句:的语句:Data1.Recordset.FindFirst 姓名姓名王东王东If Data1.Recordset.NoMatch Then MsgBox 数据表中没有符合条件的记录!数据表中没有符合条件的记录!End If30Visual Basic程序设计教程13.3.3 Data控件的常用事件控件的常用事件1Validate事件事件在一条不同的记录成为在一条不同的记录成为当前记录当前记录之前,之前,Update 方法之方法之前,或者前,或者Delete、Unload 或或 Close 操作之前会引发该操作之前会引
25、发该事件。即将记录指针从事件。即将记录指针从X记录移到记录移到Y记录时,引发该事记录时,引发该事件。引发该事件时,当前记录仍为件。引发该事件时,当前记录仍为X记录。记录。Validate事件过程的格式为:事件过程的格式为:Private Sub Data1_Validate(Action As Integer,Save As Integer)31Visual Basic程序设计教程其中,其中,Action参数用来标识引发该事件的操作。借用参数用来标识引发该事件的操作。借用该参数可以根据不同的操作作不同的处理。该参数可以根据不同的操作作不同的处理。Save参参数是一个布尔表达式,用来表示是否保存
26、已修改的数数是一个布尔表达式,用来表示是否保存已修改的数据。如果该事件退出时据。如果该事件退出时 save 为为 True,则激活,则激活 Edit 和和 UpdateRecord 方法。方法。2Reposition事件事件在一条记录成为当前记录之后引发该事件。即将记录在一条记录成为当前记录之后引发该事件。即将记录指针从指针从X记录移到记录移到Y记录时,引发该事件。引发此事记录时,引发该事件。引发此事件时,当前记录是件时,当前记录是Y记录。记录。32Visual Basic程序设计教程绑绑定定:通通过过对对普普通通控控件件的的属属性性设设置置,使使得得这这些些控控件件与与Data控件记录集中的
27、字段建立链接关系。控件记录集中的字段建立链接关系。1.Data的绑定控件的绑定控件 具具有有DataSource和和DataField属属性性的的控控件件可可以以和和Data控件进行绑定,如标签、文本框等。控件进行绑定,如标签、文本框等。2.绑定控件的属性设置绑定控件的属性设置DataSource:选择所绑定的:选择所绑定的Data控件控件 DataField:确确定定需需显显示示或或更更新新的的数数据据表表字字段段,即即Data控件连接的数据表字段控件连接的数据表字段 33Visual Basic程序设计教程【例例13-2】设计一个程序,管理设计一个程序,管理“学生学生.mdb”数据库中数据
28、库中“学学生基本情况表生基本情况表”的记录的内容,此数据表中的记录如表的记录的内容,此数据表中的记录如表13.1所示。程序运行的界面如图所示。所示。程序运行的界面如图所示。34Visual Basic程序设计教程分析:程序运行时要显示如图的界面,相应文本框分析:程序运行时要显示如图的界面,相应文本框需要分别绑定到数据控件,同时由于文本框控件已需要分别绑定到数据控件,同时由于文本框控件已绑定,文本框中任何数据的修改都会直接改变数据绑定,文本框中任何数据的修改都会直接改变数据库中的数据,因此需要对已更改的数据作出判断,库中的数据,因此需要对已更改的数据作出判断,这一过程可以通过这一过程可以通过Da
29、ta控件的控件的Validate事件完成。事件完成。另外,通过另外,通过Data控件的控件的Reposition事件设置它的事件设置它的Caption属性。数据控件属性。数据控件Data1和文本框的属性设和文本框的属性设置如表置如表13.9所示。所示。35Visual Basic程序设计教程对对象象属性属性属性属性值值Data1ConnectAccessDatabaseName学生数据学生数据库库所在路径及名称所在路径及名称(学生学生.mdb)RecordSource学生基本情况表学生基本情况表Text1Text6DataSourceData1DataField分分别为别为:学号、:学号、专业
30、专业、姓名、性、姓名、性别别和籍和籍贯贯36Visual Basic程序设计教程ADO:ActiveX Data Objects(ActiveX数数据据对对象象)创建创建ADO控件控件(1)“工程工程”部件部件”(2)点击工具箱中,点击工具箱中,在窗体上画出在窗体上画出ADO对象对象37Visual Basic程序设计教程13.5.2 ADOADO控件的属性、方法和事件控件的属性、方法和事件设置窗体上设置窗体上ADO对象的对象的ConnectionString属性属性38Visual Basic程序设计教程 39Visual Basic程序设计教程设置窗体上设置窗体上ADO对象的对象的Reco
31、rdSource属性属性 选择数据表为记录源选择数据表为记录源 由由SQL查询来确定记录源查询来确定记录源40Visual Basic程序设计教程 ADO控件的方法和事件控件的方法和事件 ADO控件与控件与Data控件类似,对数据的操作主要控件类似,对数据的操作主要通过通过Recordset对象的方法来实现。对象的方法来实现。ADO控件提供可响应的事件较多,常用的是控件提供可响应的事件较多,常用的是WillMove事件和事件和MoveComplete事件。当用某种方事件。当用某种方法改变纪录集的指针使其从一条记录移到另一条记录,法改变纪录集的指针使其从一条记录移到另一条记录,产生产生WillM
32、ove事件。当一条记录成为当前记录后,产事件。当一条记录成为当前记录后,产生生MoveComplete事件,它在事件,它在WillMove事件之后发事件之后发生。生。41Visual Basic程序设计教程DataGrid控件与控件与ADO控件绑定后,可一次显示多条控件绑定后,可一次显示多条记录,并允许对显示的记录进行编辑修改,并可将修记录,并允许对显示的记录进行编辑修改,并可将修改的结果自动更新到数据库中。改的结果自动更新到数据库中。使用使用DataGrid控件:控件:(1)“工程工程”部件部件”(2)点击工具箱中点击工具箱中 (3)在窗体上画出在窗体上画出 DataGrid对象对象42Vi
33、sual Basic程序设计教程【例例13-3】用用DataGrid控件显示学生基本情况表中控件显示学生基本情况表中的数据,界面如图所示的数据,界面如图所示 43Visual Basic程序设计教程【操作步骤操作步骤】在窗体上放置一个在窗体上放置一个ADO控件和一个控件和一个DataGrid控件,控件,设置设置ADO控件与数据库的连接,设置控件与数据库的连接,设置DataGrid控控件的件的DataSource属性为属性为Adodc1,运行程序后就,运行程序后就可以在可以在DataGrid控件中显示学生基本情况表中的控件中显示学生基本情况表中的所有数据。所有数据。44Visual Basic程
34、序设计教程 事务(事务(Transaction)是数据库系统中的一个)是数据库系统中的一个非常重要的概念。简单地说,一组对数据库的非常重要的概念。简单地说,一组对数据库的操作组成一个事务被提交执行,那么事务处理操作组成一个事务被提交执行,那么事务处理就必须做到:要么整个操作都成功,要么什么就必须做到:要么整个操作都成功,要么什么操作都不做。操作都不做。数据库本身肩负着管理事务的责任。只要应数据库本身肩负着管理事务的责任。只要应用程序指定了某段程序为一个事务并做了相应用程序指定了某段程序为一个事务并做了相应的处理(提交或回退),数据库系统会自动维的处理(提交或回退),数据库系统会自动维护事务本身
35、的特性。护事务本身的特性。45Visual Basic程序设计教程 VB以以BeginTrans、CommitTran和和RollbackTrans过程的形式提供了事务处理机制。过程的形式提供了事务处理机制。BeginTrans开始记开始记录对数据库的更新,用于以后可能的恢复。录对数据库的更新,用于以后可能的恢复。BeginTrans调用可以嵌套调用可以嵌套5层。激活层。激活CommitTrans,实现从最近的实现从最近的BeginTrans开始的所有改变。对于嵌套开始的所有改变。对于嵌套事务,直到关闭了所有事务记录后才执行更新。激活事务,直到关闭了所有事务记录后才执行更新。激活RollbackTrans可以取消从最近调用可以取消从最近调用BeginTrans开始开始所做的所有改变。所做的所有改变。46Visual Basic程序设计教程【13-4】利用利用ADO控件和控件和DataGrid控件,设计成绩查询控件,设计成绩查询程序,界面如图程序,界面如图13-15所示。界面中包含一个所示。界面中包含一个ADO控件、控件、一个一个DataGrid控件、一个标签、一个文本框和两个命控件、一个标签、一个文本框和两个命令按钮,命令按钮采用控件数组形式。令按钮,命令按钮采用控件数组形式。47Visual Basic程序设计教程
限制150内