1、工程应用培训教材Visual Basic 6.0 程序员培训教程 第九节 数据库操作应用背景数据库管理是最为广泛的应用之一, 数据库应用程序设计 是自动化系统中的一大领域,特别是伴随客 户机/ 服务器数据库管理系 统的出现, 这种类型的应用越来越受到广大用户喜爱。客户机是在工作站上运行的客 户程序,工作站则与局域网络(LAN) 或广域网络(WAN)上的服 务器相连,构成客户机/服务器系统,其最主要的特点是所有由客户机应用程序 发出的 SQL语句都在服务器上执行,即服 务器负责执行所有由工作站送入服 务器的SQL 语 句。例如从工作站上向服 务器发出一个 Select 查询 ,则只有满足查询条件
2、的记录被返回到客户工作站。参见图 9-1 所示客户机/ 服务器结构。图 9-1 客户机/服务器结构知识要点(1) 数据库的概念数据库是按一定存储格式存储的数据文件,他是由若干个二维数据表组成的集合,它按照一定的法 规对数据文件进行重新组织 ,以便使数据具有最大的独立性,并实现对数据的共享。数据库是相关数据的集合,一个数据库含有各种成分,包括表、记录、字段、索引、视图、存储过程等。数据库(Database):Visual Basic 中使用的数据库是关系型数据库(Relational Batabase)。一个数据 库由一个或一组数据表组成。每个数据 库都以文件的形式存放在磁盘上,即 对应于一个物
3、理文件。不同的数据库,与物理文件对应的方式也不一样。数据表(Table): 简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。一个表是一 组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个班所有学生的考 试成绩,可以存放在一个表中,表中的每一行对应一个学生, 这一行包括学生的学号,姓名及各门课程成绩 。记录(Record):表中的每一行称为一个记录,它由若干个字段组成。LAN/WAN 数据库服务器工程应用培训教材Visual Basic 6.0 程序员培训教程 字段(Field):也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息
4、,如数据类型、数据宽度等。索引(Index):为了提高访问数据库的效率,可以 对数据库使用索引。当数据库较大时,为了查找指定的 记录, 则使用索引和不使用索引的效率有很大差别。索引实际上是一种特殊 类型的表,其中含有关键字段的值(由用户定义) 和指向 实际记录位置的指 针,这些值和指针按照特定的顺序(也由用户定义) 存 储,从而可以以较快的速度查找到所需要的数据记录。视图(view):数据的视图指的是 执行 SQL 语句得到的数据表查找结果,以表的形式体现,但视图不是表,是查找的结果,因此不能修改 视图中的记录。存储过程(Stored Procedure):是大型关系数据库的高级功能,是针对多
5、用户操作,多表操作而言,为 保证操作后数据的完整性和一致性而特有的功能,当因为多种原因操作没有完成 时,数据库自动回退到操作前的状态。(2) 建立数据库连接环境VB 程序大多情况下是使用 ADO(ActiveX Data Objects)数据连接方式连接数据库。ADO 是 Microsoft 提出的应用程序接口(API )用以实现访问关系数据库中的数据,也是 Microsoft 的组件对象模式(COM)的一部分。VB 集成环境的操作步骤:工程-添加数据环境,在工程窗口中选择连接环境,在属性窗口中将连接 环境名称更改为 DE1,将数据连接对象名称更改为 Conn。在 设计 窗口中选择 Conn
6、对象,点 击鼠标右健属性菜单, 进行数据连接的设置,参见图 9-2。首先 设置数据连接的驱动程序,我 们选择连接MS SQL SERVER 2K 数据库,因此 选用 Microsoft OLE DB Provider for SQL SERVER 驱动。图 9-2 数据连接-选择驱动程序工程应用培训教材Visual Basic 6.0 程序员培训教程 选择数据驱动后,选择数据库 服务器名称或 IP 地址(运行数据 库的机器名称),数据库用户名称和密 码(与数据库连接的用户名或密 码),以及在数据库服务器上选择需要连接的数据库(建立的数据库名称),最后 进行测试连接,参见图 9-3。图 9-3
7、数据连接连接数据库一般有这样几个要素:数据库驱动程序,网 络上数据服 务器名称或 IP 地址,数据库用户 名和密码,以及需要连接的数据 库名。(3) 执行数据库 SQL 操作在工程中数据连接环境同窗体一样,是全局量,因此我们可以在程序的任何位置使用这个环境来进行数据操作。执行数据库操作 SQL 命令的基本形式如下:DE1.Conn.Execute strSql对于没有返回结果集的 SQL 命令,如 Insert,Update,delete 等 SQL 命令,执行 SQL 数据操作命令的基本方式为使用数据环境 DE1 的数据连接对象Conn 的方法 Execute 直接执行。 SQL 命令可以通
8、过 VB 中的字符串 连接方式构造。(4) 获得数据库返回结果集对于有返回结果集的 SQL 命令,如 select 语句,需要把 结 果集付给VB 程序中的 ADO 对象的 Recordset 集类型变量,基本形式如下:Dim rst As ADODB.RecordsetSet rst = New ADODB.Recordset DE1.Conn.Open工程应用培训教材Visual Basic 6.0 程序员培训教程 strSql = “select * from setup“rst.Open strSql, DE1.Conn, 3, 1Recordset 是一个数据查询结果集, 对象部分方
9、法解释如下:Open 方法用于返回查询结果集:recordset.Open Source, ActiveConnection, CursorType, LockType, OptionsSource:可 选,SQL 语句、表名、存 储过程调用ActiveConnection 可选,有效 Connection 对象变量名。CursorType 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型:AdOpenForwardOnly (默认值)打开 仅向前类型游标,AdOpenKeyset 打开键集类 型游标(常用),AdOpenDynamic 打开动态
10、类型游标(常用),AdOpenStatic 打开静态类型游标。LockType 可选 ,确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一,AdLockReadOnly (默认值)只读, AdLockPessimistic 保守式 锁定 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即 锁定数据源的记录, AdLockOptimistic 开放式锁定 提供者使用开放式 锁定,只在调用 Update 方法 时才锁定记录,AdLockBatchOptimistic 开放式批更新用于批更新模式。Options 可选,长整型值,
11、用于指示提供者如何 计算 Source 参数。可为下列常量之一,adCmdText 指示提供者应该将 Source 作为命令的文本定义来计算,adCmdTable 指示 ADO 生成 SQL 查询以便从在 Source 中命名的表中返回所有行,adCmdTableDirect 指示提供者更改从在 Source 中命名的表中返回所有行,adCmdStoredProc 指示提供者 应该将 Source 视为存储过程,adCmdUnknown 指示 Source 参数中的命令 类型为未知,adCmdFile 指示应从在 Source 中命名的文件中恢复保留(保存的)Recordset,adAsync
12、Execute 指示应异步执行 Source,adAsyncFetch 指示在提取 Initial Fetch Size 属性中指定的初始数量后, 应该异步提取所有剩余的行。如果所需的行尚未提取,主要的线程将被堵塞直到行重新可用,adAsyncFetchNonBlocking 指示主要线程在提取期间从未堵塞。如果所 请求的行尚未提取,当前行自动移到文件末尾。Recordset 对象属性及方法:Move 方法:移动指针到 Recordset 对象的指定位置MoveFirst 方法:移动指针到 Recordset 对象的第一条记录 MoveLast 方法:移 动指针到 Recordset 对象的最
13、后一条记录MovePrevious 方法:移动指针 到 Recordset 对象的上一条记录MoveNext 方法:移动指针到 Recordset 对象的下一条记录Recordset 对象部分属性:BOF 属性:判断当前 Recordset 对象的数据游标是否指向开始位置。工程应用培训教材Visual Basic 6.0 程序员培训教程 EOF 属性:判断当前 Recordset 对象的数据游标是否指向 结尾位置。RecordCount 属性:判断当前 Recordset 对象中的记录条数。PageSize 属性:设定结果集的中每页显示的记录数量。AbsolutePage:返回 结果集中的当前
14、页码。PageCount 属性:返回结果集的页面数量。应用举例:例 1:建立一个 Access 数据库 db1,建立一个表 Station,用于保存行政区域所属城市信息,结构如下:子段 id(字符串,隶属地区 key),province(字符串,地区名称),cityid (字符串,城市 key,不能重复),city(字符串,城市名称),master(字符串,主管经理),address(字符串,地址) ,telephone(字符串, 电话),zip(字符串,邮编 )。1打开 MicroSoft Access,建立一个空数据库 db1,建立一个表 Station,按照题意建立表 Station 的
15、字段属性,参 见图 9-4。图 9-4 建立表 station 的字段属性2保存表结构,表名称为 Station,建立完毕。注意:此 时的数据的用 户名为 Admin,密码为空。例 2:在如上题的数据库 db1 的表 station 中追加记录,要求记录数据之间的关系为 id 为行政区域的 key 代码,可以重复, 为固定的几个区域数据;但同样 id,province 数据必须一致,城市 key 保持唯一。工程应用培训教材Visual Basic 6.0 程序员培训教程 1建立一个标准 exe 的工程 1,载工程中增加模块 module1 和数据环境,更改数据环境的名称为 DE1,数据 环境中
16、的数据连接对象为 Conn。2建立数据环境中的数据连接 对象 Conn 的属性。选择 Conn 对象后,点击鼠标右键,分别设置数据 连接驱动程序,数据文件,用 户名和密码。参见图 9-5,图 9-6。图 9-5 选择数据库驱动程序图 9-6 选择联接的 Access 数据库文件3在窗体 Form1 上,添加数据库的数据项输入文本框和选择框,参见图 9-7。工程应用培训教材Visual Basic 6.0 程序员培训教程 图 9-7 窗体设计期画面4在窗体的 Load 加载事件,进行数据连接的打开操作,并给列表况进行列表初始化。代码如下:Private Sub Form_Load()DE1.Co
17、nn.OpenCombo1.AddItem “hb-华北“Combo1.AddItem “hz-华中“Combo1.AddItem “db-东北“Combo1.AddItem “hn-华南“Combo1.AddItem “hd-华东“Combo1.AddItem “xb-西南“Combo1.AddItem “xn-西南“Combo1.ListIndex = 0End Sub5.编写 Bombox 列表框的 Click 事件,使区域代码和区域名称分别显示在 Text7,Text8 文本框控件中,该两个文本框控件的 Enabled 属性已经设置为 False。代码如下:Private Sub Co
18、mbo1_Click()Text7.Text = Mid(Combo1.List(Combo1.ListIndex), 1, 2)Text8.Text = Mid(Combo1.List(Combo1.ListIndex), 4, Len(Combo1.List(Combo1.ListIndex)End Sub6在窗体上添加一个命令按钮 Comman1,更改其 Caption 属性为添加,编写其 Click 事件程序,代码 如下:工程应用培训教材Visual Basic 6.0 程序员培训教程 Private Sub Command1_Click()Dim strsql As StringIf
19、 Text1.Text = “ ThenMsgBox “城市代 码不能为空“, vbOKOnlyExit SubEnd IfIf Text2.Text = “ ThenMsgBox “城市名称不能 为空“, vbOKOnlyExit SubEnd IfDim rs As ADODB.RecordsetSet rs = New ADODB.Recordsetstrsql = “select * from station where cityid=“ + Text7.Text + Text1.Text + “rs.Open strsql, DE1.Conn, 3, 1If rs.RecordCou
20、nt 0 ThenMsgBox “城市代 码不能重复,请更改代码!“Exit SubEnd Ifstrsql = “insert into station (id,province,cityid,city,master,address,telephone,zip) values(“strsql = strsql + “ + Text7.Text + “,“strsql = strsql + “ + Text8.Text + “,“strsql = strsql + “ + Text7.Text + Text1.Text + “,“strsql = strsql + “ + Text2.Text
21、 + “,“strsql = strsql + “ + Text3.Text + “,“strsql = strsql + “ + Text4.Text + “,“strsql = strsql + “ + Text5.Text + “,“strsql = strsql + “ + Text6.Text + “strsql = strsql + “)“工程应用培训教材Visual Basic 6.0 程序员培训教程 DE1.Conn.Execute strsqlText1.Text = “Text2.Text = “Text3.Text = “Text4.Text = “Text5.Text
22、= “Text6.Text = “MsgBox “成功追加 记录!“, vbOKOnlyEnd Sub程序运行结果如下图 9-8:图 9-8 程序运行结果例 3:将如上面例题的数据以每页 20 行数据记录的形式在 MsFlexGrid 控件中显示出来,要求有前页、后页、最后一页,最前一页按钮显示。1.在上面例题中,增加 4 个按 钮控件数组 Command2,增加一个查询条件文本框 Text9 和一个查询按钮 Command3。2在窗体上增加一个 MsFlexGrid 表格控件,步 骤如下:在菜 单的工程-部件选项 中,参见图 9-9,选择 Microsoft FlexGrid 6.0.选 中
23、确定后,向窗体上添加一个 MsFlexGrid1 对象。工程应用培训教材Visual Basic 6.0 程序员培训教程 图 9-9 部件选择 Microsoft FlexGrid Control 6.03.编写 MsFlexGrid1 对象的初始化程序,代 码如下:Private Sub grid()MSFlexGrid1.Cols = 8MSFlexGrid1.Rows = 1MSFlexGrid1.Row = 0MSFlexGrid1.Col = 0MSFlexGrid1.ColWidth(0) = MSFlexGrid1.Width / 8MSFlexGrid1.Text = “区域代
24、码“MSFlexGrid1.Col = 1MSFlexGrid1.ColWidth(1) = MSFlexGrid1.Width / 8MSFlexGrid1.Text = “区域名称“MSFlexGrid1.Col = 2MSFlexGrid1.ColWidth(2) = MSFlexGrid1.Width / 8MSFlexGrid1.Text = “城市代码“MSFlexGrid1.Col = 3MSFlexGrid1.ColWidth(3) = MSFlexGrid1.Width / 8MSFlexGrid1.Text = “城市名称“MSFlexGrid1.Col = 4MSFlexGrid1.ColWidth(4) = MSFlexGrid1.Width / 8MSFlexGrid1.Text = “主管“
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。