配色: 字号:
《Visual Basic程序设计教程(第3版)》第7章数据库访问技术
2023-05-24 | 阅:  转:  |  分享 
  
第7章 数据库访问技术第7章 数据库访问技术27.1 数据库基础知识7.2 可视化数据管理器VISDATA 7.3 利用Data控件访问
数据库7.4 利用ADO技术访问数据库7.5 SQL语言7.6 应用案例与设计—简单职工数据管理器的设计7.1 数据库基础知识7.
1.1 数据库基础知识7.1.2 Visual Basic数据库访问技术的发展数据库基础所谓数据库,简单地说就是存储数据的仓库。数
据不是简单杂乱地堆放到数据库中,它们是按着一定的规则和结构有组织地存放到数据库中。(1)视图(2)键(3)外来键(4)索引 Vis
ual Basic数据库访问技术的发展1. Data Access Objects(DAO)DAO数据访问对象是Visual
Basic最先采用的面向对象的数据库访问接口。 2.Remote Data Objects(RDO)远程数据对象(RDO)是位于O
DBC API之上的一个对象模型,它绕过Microsoft Jet数据库引擎,而依赖于ODBC API、ODBC驱动程序以及后端数
据库引擎实现大部分的功能。 3.ActiveX Data Object(ADO)ActiveX数据对象(ADO)是从Visual
Basic 6.0开始最新支持的数据访问对象。 7.2 可视化数据管理器VISDATA 7.2.1 可视化数据管理器VISDA
TA 7.2.2 可视化数据管理器应用实例 可视化数据管理器VISDATA生成多种类型的数据库建立数据库表对数据进行安全性管理创
建数据窗体可视化数据管理器应用实例“职工档案”数据库由若干数据表组成,主要用来存储某单位职工的各种信息,“职工档案”数据库中有一个
“职工信息”表,表结构如表7.2所示。可视化数据管理器应用实例(续)表7.2 “职工信息”表结构可视化数据管理器应用实例(续)1
.创建数据库2.添加数据库表3.添加索引4.添加记录5.数据窗体设计器7.3 利用Data控件访问数据库Data控件是Visual
Basic的内部控件之一,它可以通过Microsoft Jet数据库引擎来访问Access、FoxPro和Paradox等数据库
,还可以通过ODBCDirect来访问ODBC数据源。Data控件的常用属性(1)Connect属性(2)DatabaseName
属性(3)RecordSource属性(4)RecordsetType属性(5)ReadOnly属性(6)BOFAction 属性
(7)EOFAction属性(8)Exclusive属性 Data控件的常用事件(1)Validate事件Private Sub
object_Validate([Index As Integer,] Action As Integer,Save A
s Integer)其中,可选参数Index用来指定Data控件在控件数组中的索引值;Action参数用来说明触发Validate
事件的操作Save参数用来说明与该Data控件绑定的控件内容是否发生了改变。Data控件的常用事件(续)例如,Private Su
b Data1_Validate(action As Integer, save As Integer) If Text1.Da
taChanged And (Text1.Text < "a" Or Text1.Text > "z") Then MsgB
ox "input error" Text1.DataChanged = False End IfEnd Sub Data
控件的常用事件(续)(2)Reposition事件Private Sub Data1_Reposition()Text1.Text
=Data1.Recordset.AbsolutePosition+1End SubData控件的常用方法与数据库访问有关的方法:
(1)Refresh方法Refresh方法用来刷新与Data控件相连接的记录集。2)UPDATERecord方法UPDATERec
ord方法用来将绑定控件的当前内容写入到数据库中(3)UPDATEControls方法UPDATEControls方法用来将数据从
数据库中重新读到绑定控件中(4)Close方法Close方法用来关闭数据库或记录集,并将数据对象设置为空Recordset对象在V
isual Basic中,对数据库内的表是不允许直接访问的,而只能通过记录集(Recordset)对象进行记录的操作和浏览。Rec
ordset对象(续)Recordset对象(续)1.Recordset对象的类型表(Table)类型动态集Dynaset类型快照
Snapshot类型2.Recordset对象的常用属性AbsolutePosition属性RecordCount属性Nomatc
h属性BOF属性和EOF属性Bookmark属性Recordset对象(续)3.Recordset对象的常用方法Move方法Mov
eFirst方法MoveLast方法MoveNext方法MovePrevious方法Find方法FindFirst方法FindLa
st方法FindPrevious方法 FindNext方法Recordset对象(续)AddNew方法Edit方法DELETE方法
UPDATE方法CancelUPDATE方法Close方法数据绑定的概念及数据绑定控件1.简单的数据绑定控件常见属性DataCha
nged属性DataSource属性DataField属性2.专用的数据绑定控件DBCombo控件和DBList控件DBGrid控
件MsFlexGrid控件数据绑定的概念及数据绑定控件(续)【例7.1】 利用Data控件访问在7.2节中建立的数据库“职工档案
”,并显示“职工信息”表中所有字段信息。设计步骤如下:(1)建立新的标准EXE工程,并在窗体中添加1个Data控件、1个框架控件、
8个Label控件及8个TextBox控件。各控件在窗体中位置如图7.15所示。数据绑定的概念及数据绑定控件(续)图7.15 例
7.1运行界面数据绑定的概念及数据绑定控件(续)(2)设置各控件属性如表7.5所示。数据绑定的概念及数据绑定控件(续)说明:Dat
a控件有4个按钮,从左向右分别代表移动记录指针到第一条记录;到前一条记录;到后一条记录;到最后一条记录。通过这4个按钮,可以移动记
录指针到不同位置,并在绑定控件中显示该记录的信息。 运行程序,结果如图7.15所示。数据绑定的概念及数据绑定控件(续)【例7.2】
修改例7.1,在例7.1的窗体上增加4个命令按钮,为其编程代替Data控件的记录移动功能。设计步骤如下:(1)修改例7.1窗体,
增加4个Command控件。各控件在窗体中位置如图7.16所示。 数据绑定的概念及数据绑定控件(续)图7.16 例7.2运行界面
数据绑定的概念及数据绑定控件(续)(2)修改Data控件属性,设置新增命令按钮属性,属性设置如表7.6所示。 数据绑定的概念及数据
绑定控件(续)(3)编写代码。Private Sub Command1_Click()Data1.Recordset.MoveFi
rstEnd SubPrivate Sub Command2_Click()Data1.Recordset.MovePreviou
sIf Data1.Recordset.BOF Then Data1.Recordset.MoveFirstEnd Sub
数据绑定的概念及数据绑定控件(续)Private Sub Command3_Click()Data1.Recordset.Move
NextIf Data1.Recordset.EOF Then Data1.Recordset.MoveLastEnd Su
bPrivate Sub Command4_Click()Data1.Recordset.MoveLastEnd Sub (4)运
行程序,结果如图7.16所示。数据绑定的概念及数据绑定控件(续)【例7.3】在例7.2的基础上实现对数据库的数据编辑功能。设计步骤
如下:(1)修改例7.2窗体,在窗体中增加5个Command控件,如图7.17所示的控件。数据绑定的概念及数据绑定控件(续)图7.
17 例7.3运行界面 数据绑定的概念及数据绑定控件(续)(2)设置新增命令按钮属性,属性设置如表7.7所示。 数据绑定的概念及
数据绑定控件(续)(3)编写代码Private Sub Form_Load()Text1.Text = "" ''清空文本框内容
Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6
.Text = ""Text7.Text = ""Text8.Text = ""End Sub数据绑定的概念及数据绑定控件(续)P
rivate Sub Command5_Click() Dim str1, str2 As String str1 = Tri
m(InputBox("请输入姓名:", "查找姓名"))''输入姓名 If str1 <> "" Then str2 =
"xm=''" & str1 & "''" Data1.Recordset.FindFirst str2 ''在数据库中查找对
应记录 If Data1.Recordset.NoMatch Then MsgBox "查无此人!" ''
没有找到则弹出提示框 Data1.Recordset.MoveFirst ''找到则使记录指针定位到第一个满足条件的
记录上 End If End IfEnd Sub数据绑定的概念及数据绑定控件(续)Private Sub Command6
_Click() Dim str1 As String str1 = MsgBox("输入新纪录", vbOKCancel,
"添加新记录") If str1 = vbOK Then Data1.Recordset.AddNew ''增加
一条新记录 End IfEnd Sub数据绑定的概念及数据绑定控件(续)Private Sub Command9_Click()
Dim str1 As String str1 = MsgBox("是否真的保存?", vbOKCancel, "保存提示"
) ''提示是否保存记录 If str1 = vbOK Then Data1.UpdateRecord
''保存记录 End IfEnd Sub 数据绑定的概念及数据绑定控件(续)Private
Sub Command8_Click() Dim str1 As String str1 = MsgBox("y/n", vb
OKCancel, "delete") ''提示是否删除记录 If str1 = vbOK Then Data1.Re
cordset.DELETE ''删除记录 Data1.Recordset.MoveFirst End IfE
nd Sub 数据绑定的概念及数据绑定控件(续)Private Sub Command7_Click() EndEnd Su
b(5)运行程序。程序执行后结果如图7.17所示。数据绑定的概念及数据绑定控件(续)【例7.4】 修改例7.1,增加使用DBLis
t控件显示职工姓名,选择某姓名,则显示该职工全部信息功能。7.4 利用ADO技术访问数据库在Visual Basic 6.0中,
ADO对象模型是主要的数据访问接口。ADO对象模型规定了一组可编程的分层对象集合,在Visual Basic应用程序中,通过创建这
组对象集合来连接数据库,实现对数据库的各种操作。使用ADODC控件访问数据库1.ADODC控件的常用属性与设置方法Connecti
onString属性UserName属性和Password属性CommandType属性和RecordSource属性2.ADOD
C控件的常用事件WillMove和MoveComplete事件WillChangeField和FieldChangeComplet
e事件使用ADODC控件访问数据库(续)3.ADODC控件的常用方法ADODC控件的常用方法与Data控件十分相似4. ADO数据
绑定控件使用ADODC控件访问数据库(续)【例7.5】 利用ADODC数据绑定控件重做例7.4,对功能做进一步修改,根据Data
List中选定职工姓名控制光标在DataGrid中指定行移动。【例7.6】 利用ADODC控件重做例7.3。利用ADO编程访问数
据库1.ADO对象模型简介图7.32 ADO对象模型利用ADO编程访问数据库(续)2.采用ADO对象编程方式访问数据库的步骤(1
)使用Connection对象建立与数据库的连接(2) 利用建立好的连接,通过Connection 、Command对象执行SQL
命令,或利用Recordset对象取得结果记录集进行查询、处理等(3)关闭连接并释放对象利用ADO编程访问数据库(续)【例7.7】
利用ADO编程重做例7.6。设计步骤如下:(1)修改例7.6窗体,删除ADODC控件,将DataGrid控件的DataSource
属性设置为空。(2)选择“工程”菜单中的“引用”选项,然后在列表中选择 “Microsoft ActiveX Data Objec
t 2.0 Library”,以实现对ADO2.0的访问。利用ADO编程访问数据库(续)(3)编写代码。Private conn
As ADODB.Connection ''Connection对象Private rs As ADODB.Recordset
'' Recordset对象Private cmd As ADODB.Command '' Command对象Private Su
b Form_Load()Dim strquery As String Set conn = New ADODB.Connect
ion ''创建Connection对象 Set cmd = New ADODB.Command ''创建Command对象
利用ADO编程访问数据库(续) Set rs = New ADODB.Recordset ''创建Recordset对象
conn.Open "data source=职工档案" ''设置Connection对象连接数据库源 cmd.ActiveC
onnection = conn ''设置Command对象的Connection对象 cmd.CommandText
= "select from 职工信息 " ''设置Command 对象的sql语句 cmd.CommandType
= adCmdText ''设置 Command 对象类型 利用ADO编程访问数据库(续)cmd.CommandTimeou
t = 15 ''设置 Command 对象执行时限 rs.LockType = adLockOptimistic ''
设置 Recordset对象锁定类型rs.CursorType = adOpenKeyset ''设置 Recordset对
象游标类型 rs.Open cmd ''设置 Recordset对象打开Command 对象 Set DataGrid1.Da
taSource = rs ''设置 DataGrid对象的数据源为Recordset对象End Sub利用ADO编
程访问数据库(续)Private Sub Command1_Click() ''添加记录 rs.AddNewEnd Sub
Private Sub Command2_Click() ''删除记录rs.DeleteEnd SubPrivate S
ub Command3_Click() ''保存记录rs.UpdateEnd SubPrivate Sub Comman
d5_Click() ''移动到第一条记录rs.MoveFirstEnd Sub 利用ADO编程访问数据库(续)Priva
te Sub Command6_Click() ''移动到上一条记录rs.MovePreviousEnd SubPriva
te Sub Command7_Click() ''移动到下一条记录rs.MoveNextEnd SubPrivate
Sub Command8_Click() ''移动到最后一条记录rs.MoveLastEnd Sub利用ADO编程访问数
据库(续)(5)运行应用程序,结果如图7.31所示。图7.317.5 SQL语言结构化查询语言SQL(Structure Que
ry Language)是一种用来和关系数据库进行交互通信的数据库语言。SELECT语句SELECT语句的语法格式为:SELECT
[ALL | DISTINCT] <查询结果表达式> [,<查询结果表达式>]|……FROM <表名或视图名> [,<表名
或视图名>]… …[WHERE <条件表达式>][GROUP BY <列名> [HAVING <条件表达式>]][ORDER
BY <列名> [ASC|DESC]];SELECT语句(续)例如,(1)查询职工表中职工编号、职工姓名、职工性别。SELEC
T zgbh,xm.xb FROM职工信息;(2)查询职工表中所有男性职工的职工编号、职工姓名、性别。SELECT zgbh,xm
.xb FROM职工信息 WHERE xb=''男'';(3)查询职工表中所有男性且工资大于1500元的职工的职工编号、职工姓名、性别
。SELECT zgbh,xm.xb FROM职工信息 WHERE xb=''男'' AND gz>1500;INSERT语句INSE
RT语句的语法格式为:INSERT INTO<表名>[(字段列表)] ;INSER
T语句(续)例如:(1)向职工信息表中插入职工编号为5、姓名为张一航、性别为女的记录。INSERT INTO 职工信息(zgbh,
xm,xb) VALUES(5, ''张一航'', ''女'');(2)将职工信息表中插入职工编号为6、姓名为李斯、性别为女、出生日期为1
990年1月1日、职称为助教、工资为1500、电话号码为8888888、家庭住址为北京市的记录。INSERT INTO 职工信息
VALUES(5, ''张一航'', ''女'', ''1990-1-1'', ''助教'',1500, ''8888888'', ''北京市'');UP
DATE 语句UPDATE 语句的语法格式为:UPDATE <表名> SET 字段名=表达式,……,字段名=表达式 [WHERE <条件>];例如,将职工编号为6的职工工资修改为2000。UPDATE 职工信息 SET gz=2000 WHER zgbh=6;DELETE 语句DELETE语句的语法格式为:DELETE FROM <表名> [WHERE <条件>];例如,删除职工信息表职工编号为6的职工数据DELETE From 职工信息 WHERE zgbh=6;7.6 应用案例与设计—简单职工数据管理器的设计应用案例要求主要采用ADO编程技术来实现简单职工数据管理器,其功能分为以下2个:⑴基本数据浏览功能,能显示数据,根据查询条件查询指定数据;⑵基本数据维护功能,主要包括插入、删除等数据编辑功能。实训七 数据库应用 1、利用DataGrid控件和Adodc控件实现学生成绩查询。 2、利用ADO对象编程方式创建一个登录界面和学生成绩管理界面。 3、设计一个通讯录程序。 ⑴ 要求能够记录联系人的通信信息。 ⑵ 要求能够维护联系人的通信信息。 ⑶ 要求能够将联系人进行分类。 ⑷ 要求能够快速查找指定联系人。 ⑸ 要求能够浏览全部联系人的信息。 ⑹ 要求能够删除联系人的通信信息。
献花(0)
+1
(本文系src862tekto...首藏)