第12章 数据库功能.docx

上传人:b****1 文档编号:1972594 上传时间:2023-05-02 格式:DOCX 页数:18 大小:104.64KB
下载 相关 举报
第12章 数据库功能.docx_第1页
第1页 / 共18页
第12章 数据库功能.docx_第2页
第2页 / 共18页
第12章 数据库功能.docx_第3页
第3页 / 共18页
第12章 数据库功能.docx_第4页
第4页 / 共18页
第12章 数据库功能.docx_第5页
第5页 / 共18页
第12章 数据库功能.docx_第6页
第6页 / 共18页
第12章 数据库功能.docx_第7页
第7页 / 共18页
第12章 数据库功能.docx_第8页
第8页 / 共18页
第12章 数据库功能.docx_第9页
第9页 / 共18页
第12章 数据库功能.docx_第10页
第10页 / 共18页
第12章 数据库功能.docx_第11页
第11页 / 共18页
第12章 数据库功能.docx_第12页
第12页 / 共18页
第12章 数据库功能.docx_第13页
第13页 / 共18页
第12章 数据库功能.docx_第14页
第14页 / 共18页
第12章 数据库功能.docx_第15页
第15页 / 共18页
第12章 数据库功能.docx_第16页
第16页 / 共18页
第12章 数据库功能.docx_第17页
第17页 / 共18页
第12章 数据库功能.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第12章 数据库功能.docx

《第12章 数据库功能.docx》由会员分享,可在线阅读,更多相关《第12章 数据库功能.docx(18页珍藏版)》请在冰点文库上搜索。

第12章 数据库功能.docx

第12章数据库功能

第12章数据库功能

随着计算机技术的提高,数据库管理技术也从原来的文件系统阶段,发展到现在的数据库系统阶段。

提供数据库访问功能已成为所有开发平台的一种事实标准。

VB中提供了多种访问数据库的功能,可以访问dBase、FoxPro、Access数据库,还可以通过ODBC方式访问MSSQLServer、OracleSQLServer、SybaseSQLServer,以客户/服务器方式存取数据库中的数据。

VB6.0提供了Data控件、ADO控件、数据环境设计器等访问数据库方法,以及ADO数据对象访问技术。

12.1据库的基本概念

12.1.1系数据库

数据库结构:

层次数据库

网状数据库

关系数据库(表、记录、字段)

VB默认Access数据库(.MDB),可在VB中直接创建,VB还可处理各种外部数据库FoxPro、Dbase、Excel、Paradox等,以及其他非关系数据库,并将其转为关系数据库。

1.数据表(Table):

是一组相关联的数据按行和列进行排列的二维表格,简称为表。

如rsgl.mdb数据库中,包含:

职工工资表

部门

编号

姓名

基本工资

岗位津贴

职务补贴

奖金

水电

房租

实发工资

财务

05004

白雪

360.00

280.00

50.00

50

0

0

690.00

保卫

04031

常胜利

408.00

280.00

50.00

50

0

0

738.00

供销

02018

程国庆

820.00

280.00

50.00

50

0

0

1150.00

技术

03028

方芳

668.00

280.00

50.00

50

0

0

998.00

供销

02003

冯文清

668.00

280.00

50.00

50

0

0

998.00

生产

01011

冯玉霞

258.00

300.00

100.00

110

10

30

705.00

保卫

04058

韩进军

408.00

280.00

50.00

50

0

0

738.00

财务

05012

李明华

492.00

280.00

50.00

50

0

0

822.00

 

2.录与字段

记录(Record):

表中的每一行。

字段(Field):

表中的每一列。

3.关键字

候选关键字:

若表中某字段值能唯一确定一个记录,称该字段

为候选关键字。

如,“编号”,“姓名”

组合关键字:

“编号”+“姓名”

主关键字:

对表中的每个记录,主关键字必须具有唯一的值,

并且不能为空值。

4.索引

索引:

对表按照某种特定的顺序进行保存或排列。

作用:

快速查找。

12.1.2数据访问对象模型

ADO——ActiveX数据对象;

RDO——远程数据对象;

DAO——数据访问对象。

12.1.3结构化查询语言SQL

12.1.4数据库的分类

Jet数据库—由Jet引擎直接生成和操作,灵活速度快,Access

和VB使用相同的Jet数据库引擎;

ISAM数据库—索引顺序访问方法数据库,如:

Dbase、FoxPro、

Paradox等,VB可生成和操作这些数据库;

ODBC数据库—客户/服务器数据库,如:

MicrosoftSQLServer、

Oracle、Sybase等,VB可使用任何支持ODBC标

准的数据库。

12.2数据管理器的使用

VB提供一个非常实用的可视化数据管理器(VisualDataManager)

12.2.1建立一个数据库

1.启动数据管理器

(1)外接程序>可视化数据管理器

(2)直接执行VisData.exe程序

2.建立Access数据库

(1)文件>新建>MicrosoftAccess>Version7.0MDB

(2)输入数据库名:

RSGL[.MDB],保存文件夹:

LZY-VB

(3)单击保存按钮,出现“数据库窗口”和“SQL语句”两个子窗口。

单击“数据库窗口”中的“+”号,列出新建数据库的常用属性。

.MDB文件是Access数据库文件,它可包含多个二维关系的数据表,每个数据表不是以文件方式存于磁盘,而是包含在数据库文件中。

3.打开数据库

(1)文件>打开数据库>MicrosoftAccess>rsgl.mdb>打开

(2)在资源管理器中,找到要打开的文件,双击之

12.2.2添加数据表

1.建立数据表结构

职工工资结构表

字段名称

类型

字段长度

索引

部门

Text

4

编号

Text

8

主索引

姓名

Text

4

基本工资

Integer

2

岗位津贴

Integer

2

职务补贴

Integer

2

奖金

Integer

2

水电

Single

4

房租

Single

4

实发工资

Single

4

2.数据表的建立步骤:

(1)文件>打开数据库>MicrosoftAccess>rsgl.mdb

右单击数据库窗口,选择“新建表”,弹出“表结构”对话框;

(2)在表名称栏输入:

职工工资;

(3)单击添加字段按钮,弹出“添加字段”对话框,输入字段的名

称、类型、大小等,一个字段完成后按确定,所有字段完成

后按关闭,返回“表结构”对话框;

(4)单击添加索引按钮,弹出“添加索引”对话框,输入索引名等,

完成后按关闭,返回“表结构”对话框;

(5)在“表结构”对话框中,单击生成表>关闭。

3.改数据表结构

(1)打开修改表所在的数据库,右单击修改表的表名,选择“设计”

(2)在“表结构”对话框中,完成有关修改后,按关闭。

12.2.3数据的增、删、改

1.工具栏

(1)记录集类型按钮

表类型记录集:

直接对记录进行增、删、改

动态集类型记录集:

先内存进行增、删、改,速度快

快照类型记录集:

只读不写,适于查询

(2)数据显示按钮

使用Data控件、不使用Data控件、使用DBGrid控件

(3)事务方式按钮(打开数据表时有效,否则出错)

开始事务:

开始将数据写入内存数据表中

回滚当前事务:

取消由“开始事务”的写入操作

提交当前事务:

确认数据写入的操作,数据表更新,不能恢复

2.记录的输入、修改与删除

在数据库窗口中,双击或右单击要操作的数据表,选择打开

12.2.4查询

12.2.5数据窗体设计器

(1)新建一个标准EXE工程;

(2)在可视化数据管理器中>实用程序>数据窗体设计器;

(3)单击生成窗体,自动前置frm;

(4)运行前,移除Form1,设置frm<窗体名>。

12.2.6数据控件与数据感知控件

1.数据控件的常用属性、方法和事件

2.据绑定控件

3.示例分析

【例12-1】通过手工方式建立一个简单的工资管理系统,如下所示。

分析:

建立Data1,其Align属性为2-AlignBottom;

增加标签控件数组Label1(0)~Label1(9);

增加文本控件数组Text1(0)~Text1(9);

增加命令控件数组Command1(0)~Command1

(2)。

程序:

PrivateSubCommand1_Click(IndexAsInteger)

IfIndex=0ThenData1.Recordset.AddNew‘添加

IfIndex=1ThenData1.Recordset.Delete:

Data1.Recordset.MoveNext

IfIndex=2ThenUnloadMe‘关闭

EndSub

PrivateSubData1_Reposition()‘显示记录次序

OnErrorResumeNext‘发生错误时转下一语句

Data1.Caption="记录:

"&(Data1.Recordset.AbsolutePosition+1)

EndSub

PrivateSubText1_Validate(IndexAsInteger,CancelAsBoolean)’计算

DimA(3To8)AsSingle

SelectCaseIndex

Case3To8

ForI=3To8:

A(I)=Val(Text1(I).Text):

NextI

Text1(9).Text=A(3)+A(4)+A(5)+A(6)-A(7)-A(8)‘计算实发工资

EndSelect

EndSub

12.3ADO数据对象访问技术

VB6.0出的ADO(ActiveDataObject),是Microsoft未来的数据访问策略,将逐步代替远程数据对象(RDO)和数据访问对象(DAO),而成为主要的数据访问接口。

VB6.0供了Access/jet、ODBC、ORACEL、SQLServer等OLEDB数据源,ADO访问数据是通过OLEDB来实现的,它是连接应用程序和OLEDB数据源之间的桥梁。

12.3.1ADO编程模型简介

1.连接(Connection)对象

2.命令(Command)对象

3.记录集(Recordset)对象

12.3.2使用ADO命令

【例12-2】使用ADOData命令建立的工资管理数据窗体。

程序:

DimcnnAsADODB.Connection‘声明连接对象变量

DimrstAsADODB.Recordset‘声明记录对象变量

PrivateSubForm_Load()

S=”Provider=Microsoft.jet.OLEDB.3.51;PersistSecurityInfo=False;”&“DataSource=d:

\VB61x\rsgl.mdb”

Cnn.CursorLocaton=adUseClient

Cnn.opens

Rst.Open”职工工资”,cnn.adopenStartic.adLockOptimistic

ForEachaaIntext1

Setaa.DataSource=rst‘绑定所有文本框到记录源

next

Combo1.AddItem"全体"‘组合框初始化

Combo1.AddItem"保卫":

Combo1.AddItem"财务"

Combo1.AddItem"技术":

Combo1.AddItem"生产"

Combo1.Text=Combo1.List(0)

EndSub

PrivateSubCommand1_Click(IndexAsInteger)

SelectCaseIndex

Case0

rst.MoveFirst

Case1

rst.MovePrevious

Ifrst.BOF()Thenrst.MoveFirst

Case2

rst.MoveNext

Ifrst.BOF()Thenrst.MoveLast

Case3

rst.MoveLast

EndSelect

EndSub

PrivateSubCombo1_Click()

t=Combo1.Text

Ift="全体"Thenrst.Filter=""Elserst.Filter="部门='"&t&"'"

Rst.ResyncAdAffectAllChapters

EndSub

12.3.3使用ADO控件

1.添加ADOData控件

工程>部件>选MicrosoftADODataControl6.0(OLEDB)>确定

2.ADOData控件的属性

(1)单击ADOData控件,选择“ADODC属性”;

(2)单选“使用连接字符串”>生成>提供者>MicrosoftJec3.51OLEDBProvider>下一步>…>所选数据库路径和名字>测试连接→测试连接成功>确定→“属性页”

(3)设置CommandType、RecordSource

在“属性页”>记录源>命令类型:

“2-adCmTable”>表名称:

“职工工资”>确定

3.ADOData控件对数据的操作

ADOData控件对数据的操作主要由Recordset对象的属性与方法来实现,参见表12-16。

4.使用ADOData控件

【例12-3】使用ADOData控件建立的工资管理数据窗体。

分析:

(1)ADOData控件建立Adodc1,其

Align属性:

2-vbAlignBottom;

ConnectionString属性:

rsgl.mdb;

CommandType属性:

2-adCmTable;

RecordSource属性:

职工工资。

(2)增加标签控件数组Label1(0)~Label1(9);

增加文本控件数组Text1(0)~Text1(9);

增加命令控件数组Command1(0)~Command1

(2)。

(3)Text1()的DataSource属性:

Adodc1;

Text1()的DataField属性:

依次为部门、编号、姓名等。

程序:

PrivateSubCommand1_Click(IndexAsInteger)

SelectCaseIndex

Case0‘添加/确定

IfCommand1(0).Caption="添加(&A)"Then

Command1(0).Caption="确定(&O)"

Command1

(1).Caption="取消(&C)"

Adodc1.Recordset.AddNew

aa(False)‘按钮3、4隐藏

Else

Command1(0).Caption="添加(&A)"

Command1

(1).Caption="编辑(&E)"

Adodc1.Recordset.UpdateBatchadAffectAll

aa(True)‘按钮3、4显示

EndIf

Case1‘编辑/取消

IfCommand1

(1).Caption="编辑(&E)"Then

Command1(0).Caption="确定(&O)"

Command1

(1).Caption="取消(&C)"

aa(False)‘按钮3、4隐藏

Else

Command1(0).Caption="添加(&A)"

Command1

(1).Caption="编辑(&E)"

Adodc1.Recordset.CancelUpdate

Adodc1.Refresh

aa(True)‘按钮3、4显示

EndIf

Case2‘删除

Adodc1.Recordset.Delete

Adodc1.Recordset.MoveNext

Case3‘关闭

UnloadMe

EndSelect

EndSub

PrivateSubaa(IAsBoolean)‘按钮显示和文本加锁切换

DimoTxtAsTextBox

ForEachoTxtInText1

oTxt.Locked=I

Next

Command1

(2).Visible=I

Command1(3).Visible=I

EndSub

PrivateSubText1_Validate(IndexAsInteger,CancelAsBoolean)

DimA(3To8)AsSingle

SelectCaseIndex

Case3To8

ForI=3To8:

A(I)=Val(Text1(I).Text):

NextI

Text1(9).Text=A(3)+A(4)+A(5)+A(6)-A(7)-A(8)‘计算实发工资

EndSelect

EndSub

PrivateSubAdodc1_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)

Adodc1.Caption="记录:

"&(Adodc1.Recordset.AbsolutePosition)

EndSub‘显示记录信息

12.3.4使用数据环境设计器

除了使用ADOData控件外,还可用数据环境设计器(DataEnviron-ment)建立ADO数据访问的数据源。

方法如下:

1.向工程添加数据环境

工程>更多ActiveX设计器>DataEnvironment

2.创建连接对象

右单击Connection1>选“属性”>提供者>MicrosoftJet3.351经OLEDBProvider>…>选择所所需的数据库路径和名字>测试成功>确定

3.创建命令对象

右单击Connection1>选添加命令>选中Command1对象,单击工具栏中的属性>数据库对象选“表”>对象名称选“职工工资”

4.使用数据环境

【例12-4】在例12-2的数据查看中使用数据环境。

分析:

(1)建立用户界面(同例12-2);

(2)按上所述,添加数据环境DataEnvironment1,创建Connec-

tion1和Command1对象;

(3)设置Text1(0~8)的DataSource属性为DataEnvironment1,Dada-

Member属性为Command1,DataField属性为编号、姓名等。

程序:

PrivateSubCommand1_Click(IndexAsInteger)

SelectCaseIndex

Case0

DataEnvironment1.rsCommand1.MoveFirst

Case1

DataEnvironment1.rsCommand1.MovePrevious

IfDataEnvironment1.rsCommand1.BOF()ThenDataEnvironment1.rsCommand1.MoveFirst

Case2

DataEnvironment1.rsCommand1.MoveNext

IfDataEnvironment1.rsCommand1.BOF()ThenDataEnvironment1.rsCommand1.MoveLast

Case3

DataEnvironment1.rsCommand1.MoveLast

EndSelect

EndSub

PrivateSubForm_Load()

Combo1.AddItem"全体"

Combo1.AddItem"保卫"

Combo1.AddItem"财务"

Combo1.AddItem"技术"

Combo1.AddItem"生产"

Combo1.Text=Combo1.List(0)

EndSub

PrivateSubCombo1_Click()

t=Combo1.Text

Ift="全体"ThenDataEnvironment1.rsCommand1.Filter=""ElseDataEnvironment1.rsCommand1.Filter="部门='"&t&"'"

EndSub

12.3.5创建数据报表

数据环境的另一重要应用是为“数据报表设计器”提供数据源是,数据报表(DataReport)设计器是VB6.0新增的功能,与数据环境设计器配套使用,可以完成大多数类型报表的设计,是一种简单实用、高效快捷、功能齐全的报表设计工具。

【例12-5】在例12-4中用数据报表设计器,设计工资报表。

1.设计数据环境

在12-4的基础上,再作如下设计:

⑴、⑵

2.添加DataReport

3.设计报表中介面:

⑴、⑵、⑶、⑷、⑸

4.编写代码

5.运行报表

综合练习

1.功能模块图:

 

本章考核要求:

1.识记数据库、表等基本概念、ADO数据对象等基本概念;

2.领会掌握“可视化数据管理器”的使用方法;

3.简单应用:

掌握例1的编程方法;

4.综合应用:

掌握例3的编程方法。

课后作业:

习题9-7、习题9-8、习题9-9、习题9-10

 

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2