1 / 141

19.1 VB 开发数据库概述 19.2 数据库访问控件的应用 19.3 数据绑定控件的应用 19.4 在 ADO Data 控件中使用 SQL 语句进行查询

授课 19 :数据库编程技术. 19.1 VB 开发数据库概述 19.2 数据库访问控件的应用 19.3 数据绑定控件的应用 19.4 在 ADO Data 控件中使用 SQL 语句进行查询 19.5 通过 ADO 编程模型访问数据库. 任务: ” 学生信息管理系统各模块功能实现 ”. 该”学生信息管理系统”程序的主要功能如下: 学籍管理:包括基本学籍信息的输入、修改和查询。 课程管理:包括课程信息的输入和修改。 成绩管理:包括成绩信息的输入、修改和查询。 用户管理:包括添加用户、删除用户、设置权限和修改密码。 考勤管理:包括考勤记录的输入、修改和查询。

roman
Télécharger la présentation

19.1 VB 开发数据库概述 19.2 数据库访问控件的应用 19.3 数据绑定控件的应用 19.4 在 ADO Data 控件中使用 SQL 语句进行查询

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 授课19:数据库编程技术 19.1 VB开发数据库概述 19.2 数据库访问控件的应用 19.3 数据绑定控件的应用 19.4 在ADO Data控件中使用SQL语句进行查询 19.5通过ADO编程模型访问数据库

  2. 任务: ” 学生信息管理系统各模块功能实现” • 该”学生信息管理系统”程序的主要功能如下: • 学籍管理:包括基本学籍信息的输入、修改和查询。 • 课程管理:包括课程信息的输入和修改。 • 成绩管理:包括成绩信息的输入、修改和查询。 • 用户管理:包括添加用户、删除用户、设置权限和修改密码。 • 考勤管理:包括考勤记录的输入、修改和查询。 • 宿舍管理:包括宿舍信息的输入、修改和查询。 • 系统功能模块如图图19-1所示。

  3. 学生信息 管理系统 学籍管理 课程管理 成绩管理 用户管理 添加学籍信息 修改学籍信息 查询学籍信息 添加课程 修改课程 输入成绩 修改成绩 查询成绩 添加用户 删除用户 更改权限 修改密码 图19-1

  4. ” 学生信息管理系统”设计思路 • VB可以访问任何主流数据库。ADO是目前应用范围最广的数据访问接口,在VB中可以非常方便地使用ADO数据控件和ADO编程模型访问各种类型的数据库。本系统采用VB+ADO+SQL的设计思路和方法,来具体实现各种学生信息管理系统的功能。

  5. 19.1.1 VB开发数据库概述 19.1.1VB数据库开发功能概述 VB是微软公司发布的应用程序开发工具,不但具有强大的程序设计能力,还具有强大的数据库编程能力。 1. VB6.0数据库编程的特征 • VB处理的数据库属于关系类型数据库,由不同层次的对象组成。一个数据库由多个表组成,每个表包含若干字段。 • 支持ADO存取模式,即ActiveX Data Object • 具有管理和显示数据源的数据控件和数据绑定控件。数据控件用于与数据库连接,数据绑定控件用于显示数据表的记录。 • 提供报表设计工具,能够快速生成报表 • 提供了使用和配置连接的工具与命令,及进行ODBC 开发的API 函数。

  6. 19.1.2 VB6.0支持的数据库种类 • 数据库编程语言一般都有自己特定格式的数据库。VB默认的数据库格式与Microsoft Access格式相同. • 可以对其它多种格式的数据库进行操作和处理。VB支持的数据库有以下三类: • VB 本地数据库,与Microsoft Access 格式相同。 • 外部数据库,如 dbase , Microsoft FoxPro 等。 • ODBC 数据库,支持符合ODBC 标准的客户-服务器数据库,如: Microsoft SQL Server,Oracle等。

  7. ODBC数据库应用程序 驱动程序管理器 SQLServer 驱动程序 Oracle 驱动程序 Foxpro 驱动程序 Sybase 驱动程序 SQLServer 数据源 Oracle 数据源 Foxpro 数据源 Sybase 数据源 DB DB DB DB ODBC体系结构 主要任务包括:建立与数据源的连接 、向数据源发送SQL请求、接收并处理 请求的结果、断开与数据源的连接等 主要作用是用来装载ODBC驱动 程序、管理数据源、检查ODBC 参数的合法性

  8. ODBC数据库应用程序 驱动程序管理器 SQLServer 驱动程序 Oracle 驱动程序 Foxpro 驱动程序 Sybase 驱动程序 SQLServer 数据源 Oracle 数据源 Foxpro 数据源 Sybase 数据源 DB DB DB DB ODBC应用程序不能直接存取数据库,它将所 要执行的操作提交给数据库驱动程序, 通过针对不 同数据源的 驱动程序实 现对不同数 据源的各种 操作 ODBC驱动程序是一个动态链接库 (DLL), 类似于Windows下的打印驱动程序,对用 户来说,驱动程序屏蔽了不同对象(数据 库系统或打印机)间的差异。同样地, ODBC屏蔽了DBMS之间的差异。

  9. ODBC数据库应用程序 驱动程序管理器 SQLServer 驱动程序 Oracle 驱动程序 Foxpro 驱动程序 Sybase 驱动程序 SQLServer 数据源 Oracle 数据源 Foxpro 数据源 Sybase 数据源 DB DB DB DB 数据库操作 结果也通过 驱动程序返 回给应用程 序。

  10. 19.1.3 VB6.0支持的数据存取模式 • VB6.0支持的数据库存取模式有以下三种: • 数据存取对象(Data Access Objects, 简称DAO) • 远程数据对象(Remote Data Objects, 简称RDO) • ActiveX数据对象(ActiveX Data Objects, 简称ADO) • 1.DAO简介 • DAO模式是VB最早期的数据访问模式。 • 是以Microsoft的Jet数据库引擎为核心而发展起来的一组动态链接库。它提供了两种类型来支持数据库: • 通过Microsoft的Jet数据库引擎来操作本地数据库。 • 通过使用ODBCDirect,来存取ODBC数据库。 • 使用ODBC存取方法,DAO可以访问任何提供标准ODBC驱动程序的客户/服务器数据库。

  11. 2.RDO简介 • 远程数据库是数据库应用中新兴的领域,随着Internet的推广,网络数据库应用系统日益增加。对于网络应用程序来说,其数据访问端与数据库之间有比较远的距离,使用DAO组件已不能满足远程数据访问的要求,因此应使用远程数据对象RDO来访问数据库。 • RDO直接与数据库服务器连接,所以它比较适合于客户机/服务器方式。

  12. 3.ADO简介 • ADO是最新的数据访问技术,ADO提供了较为高级的访问OLE DB数据源的机制,它结合了DAO和RDO的优点,并提供了OLE DB数据源的入口。 • OLE DB是一个低层的数据访问接口,它向应用程序提供了一个统一的数据访问方法,利用它可以访问各种数据源,包括传统的关系型数据库、电子邮件系统及自定义的商业对象。

  13. 19.1.4 SQL Server 数据库的DSN的配置 • 1.开放式数据库互连(ODBC) • 开放式数据库互连—ODBC(Open Database Connectivity)的概念来源于对多个数据库数据存取的需求。 • 在早期的数据库编程中,由于不同的数据库管理系统(DBMS),有自己的数据库格式和嵌入式的SQL语言,即使应用程序完成同样的功能,但只要DBMS选取的不同,则编写的程序将完全不同。程序员为了能够访问不同的数据库而不得不学习多个DBMS的内容。

  14. 希望摆脱专用数据库本身的约束,对于不同的DBMS,采用统一的编程界面,从而使数据库应用程序在访问另外一种数据库格式时,不需要对源程序进行修改。ODBC开发的最初目标就是为Windows程序员提供一套访问数据库的SQL函数调用,而这些函数的调用采用相同的用户界面。 • ODBC用户可以用ODBC的SQL语句访问任何支持ODBC标准的数据库,从而使应用程序访问不同的数据库的操作不依赖任何DBMS,也为程序的跨平台开发和移植提供了方便。

  15. 2.DSN的配置 • DSN的意思是应用程序用以请求一个连接到ODBC数据源的连接(Connection)的名字,即它代表一个ODBC连接的名称,内含了数据库文件名、所在目录、数据库驱动程序、用户ID、密码等细节,使得应用程序访问数据库时,只要给出事先注册的DSN,而不必考虑以上细节问题,从而使程序中访问数据库变得简单。 • DSN可以分为以下三种: • 系统DSN:可以被登录到系统中的所有用户使用 • 用户DSN:只能被建立它的用户使用 • 文档DSN:把信息存储在后缀名为 .dsn的文件中,如果文件放在网络共享的驱动器中,就可以被所有安装了相同驱动程序的用户共享。

  16. 图19-2 ODBC数据源管理器 DSN配置步骤如下: • 以前边建立的数据库 “ts”为例 。 • (1)打开ODBC数据源管理器 • ODBC数据源管理器用来管理本机上所有的ODBC数据源,如注册新的数据源名称,删除或修改数据源等。 • 单击[开始]\[设置] \[控制面板],打开控制面板窗口; • 在其中双击[管理工具]图标,打开管理工具窗口; • 双击[数据源ODBC]图标,即可打开ODBC数据源管理器如图19-2。

  17. 图19-3 创建新数据源对话框 • (2)选择数据源类型并添加数据源 • 在[ODBC数据源管理器]中,单击[系统DSN]选项卡,再单击[添加]按钮,将出现[创建新数据源]对话框如图19-3。

  18. 图19-4 设置数据源名称及服务器 • (3)选择驱动程序 • 在图19-3所示的驱动器列表中,选择“SQL Server”并单击[完成]按钮,打开向导窗口如图19-4。

  19. 图19-5 设置身份验证方式 • (4)设置数据源 • 在数据源[名称]框中输入一个数据源名称(如cjgl),[说明]框中可不输入,然后在[服务器]列表框中选择需要连接的SQL Server服务器。 • (5)设置身份验证方式 • 单击[下一步]按钮,打开对话框如图9-5所示。在该对话框中,可以设置身份验证方式。若选择[使用用户输入登录ID和密码的SQL Server验证],需要输入登录ID和密码, sa是SQL Server2000的系统管理员帐号。

  20. 图19-6 设置数据库连接 • (6)设置默认的数据库 • 单击[下一步]按钮,打开设置数据库选项对话框,如图19-6所示。系统默认的数据库为master,在[更改默认的数据库为]下拉列表框中,选择“成绩管理”,即将默认数据库设置为所需要的数据库。

  21. 图9-7 设置其它属性 • (7)设置其它属性 • 单击[下一步]按钮,打开设置其它属性的窗口,如图19-7所示。在此可以设置用于SQL Server消息的语言、数据加密、字符数据转换等等。

  22. 图19-8 数据源汇总信息显示 • (19)单击[完成]按钮,将打开数据源的汇总信息窗口,如图19-8所示。在此窗口中综合显示了数据源的各项设置,从而决定是否创建数据库。

  23. 图19-9 测试数据源结果显示 • (9)单击[测试数据源]按钮,可以检查数据源配置是否成功。若配置成功,将显示图19-9所示的对话框。

  24. 19.2 数据库访问控件的应用 • 在VB中,开发数据库应用程序有两种方式:一种是利用VB提供的数据库访问控件,另一种是编写程序代码。 • VB6.0提供了支持DAO、RDO、ADO的特殊控件,以便访问和操作数据库。 • Data控件可以创建DAO对象, • RemoteData控件可以创建RDO对象, • ADO Data控件可以创建ADO对象 • 利用这些控件可以方便地连接到数据库并操作数据库,但这些控件并不能显示数据,必须借助数据绑定控件(如文本框等)显示、修改数据。使用数据库访问控件,可以简化开发过程,减少代码编写量,从而提高工作效率。

  25. ADO Data控件与Data控件、RemoteData控件相比,ADO Data控件的功能更为强大,使用更为方便。因此本章主要介绍支持ADO的数据控件ADO Data,及与其绑定的数据绑定控件的主要功能及其应用。

  26. 数据库 绑定控件 19.2.1 ADO Data控件及数据绑定控件 • ADO Data控件可以说是连接数据库和数据绑定控件的桥梁。 • 通过设置ADO Data控件的属性,可以让它和已存在的数据库联系起来并能指定访问数据库中的某个表,并通过数据绑定控件(如文本框,复选框等控件),显示数据库中的数据。 • 数据绑定控件用来显示数据表中的数据。需将控件绑定到ADO Data控件上的某字段上,就可显示和修改该字段的数据。

  27. 可以与ADO Data控件一起使用的数据绑定控件有: • 文本框(Text): 显示或输入数据 • 标签(Label): 显示数据 • 复选框(Check):显示逻辑类型字段, True(Yes)/False(No) • 列表框(List), 组合框(Combo): 显示数据列表, • 图像框(Image),图片框(Picture):显示图片,要求字段为二进制类型. • 其它ActiveX控件.

  28. 大多数数据绑定控件都有以下这三种属性: • (1)DataSource:数据源属性。指定需要绑定到的ADO Data控件的名称。 • (2)DataField:用来指定绑定到哪个字段上。 • (3)DataChange:用来指出显示在绑定控件里的数据是否已经被改变,如果改变,值为True,否则值为False。

  29. 图19-10 ADO Data控件的外观 19.2.2 用ADO Data控件建立数据库应用程序 • 下面通过一个简单的例子,介绍用ADO Data控件建立数据浏览窗体的基本步骤。 • (1) 新建一个标准的VB工程,将ADO Data 控件添加到工具箱中 • 执行菜单[工程]\[部件],打开“部件”对话框, • 在“控件”列表框中选中“Microsoft ADO Data Control 6.0(OLE DB)”项,将ADO Data控件添加到工具箱中。 • (2) 将ADO Data控件添加到窗体上 • 在窗体上,ADO Data控件的外观如图19-10所示,默认控件名称为Adodc1, 可以单击其上的箭头按钮在记录之间移动。

  30. 图19-11 ADO Data控件的 [属性页] 对话框 • (3) 设置ADO Data 控件的数据源连接属性 • 操作步骤如下: • 在Adodc1控件的属性窗口中,选择(自定义)属性右边的[…]按钮,打开[属性页]对话框,或鼠标右击Adodc1控件,在弹出的快捷菜单中选择[属性]命令,打开[属性页]对话框如图19-11所示。 • 在[通用]选项卡中选择“使用ODBC数据资源名称”,并在下拉列表中选择前边建立的ODBC数据源名“cjgl”。

  31. 单击[身份验证]选项卡(如图19-12),输入用户名(例如 sa)和密码(例如sa)。 • 单击[记录源]选项卡(如图19-13),在该选项卡中,可以设置ADO Data控件的返回记录的记录源。 • 记录源是从命令对象获取的,可以在[命令类型]下拉列表中选择用于记录源的命令类型。各种命令类型的含义如表所示。

  32. 图19-13 记录源的设置 图19-12 身份验证的设置

  33. 例如要访问学生信息表,选择命令类型为: • 2-adCmdTable • 然后在[表或存储过程名称]下拉列表框中选择“学生信息表”(如图19-13所示)。设置完成后,单击[确定]按钮。 • 也可以选择命令类型为1-adCmdText,然后在 [命令文本(SQL)] 框中输入如下SQL语句: • Select* From 学生信息表 • 设置完成后,单击[确定]按钮。

  34. 图19-14 数据浏览窗体设计界面 • (4) 向窗体中添加其他数据绑定控件,并绑定到Adodc1上 • 在窗体Form1上,添加5个文本框用于显示字段中的数据,5个标签用于说明对应的字段名(见图19-14)。

  35. 将控件(如Text)绑定到Adodc1上的方法如下: • 设置绑定控件的DataSource属性为数据控件名: • Adodc1 • 设置绑定控件的DataField属性为要显示的字段名 • 各个文本框的属性设置如表19-2所示. • 考虑到浏览数据的窗体,不应允许修改数据,所以将文本框的Locked属性设为True,使之只能显示数据而不能修改或输入数据。

  36. 当所有文本框都通过表19-2所示的属性设置后,即完成了绑定到Adodc1所连接的数据源。这时可运行程序,结果如图9-15所示,可见文本框中显示了学生信息表的第一条记录信息,若单击Adodc1上的按钮,可显示其他记录

  37. 19.2.3 ADO Data控件的常用属性及方法 • 1. ADO Data控件的常用属性介绍如下: • Name:名称。默认名称: Adodc1, Adodc2等。 • Caption:设置显示在控件上的标题。 • ConnectionString:设置到数据源的连接信息。 • CommandType:设置返回记录集的类型。CommandType 的值用于指明RecordSource 的 类型。CommandType的取值及含义如下: • 1-adCmdText:文本类型,可在"命令文本框"中输入SQL语句。表示返回的记录集是执行SQL语句的结果。 • 2-adCmdTable:表类型。可在"表或存储过程名"框中选择一个表名称(相当于选择表的所有字段)。表示返回的记录集类型是一个数据表。 • 4-adCmdStoredProc:存储过程类型。

  38. ReocordSurce:记录源。返回或设置Recordset的生成方式。可以是SQL语句,表名,查询名等。ReocordSurce:记录源。返回或设置Recordset的生成方式。可以是SQL语句,表名,查询名等。 • Recordset:记录集对象。 • 2. ADO Data控件的Refresh方法 • 功能:重新读数据库,刷新记录集。 • 使用格式: Adodc1. Refresh • Refresh方法可用于ADO Data控件的数据源连接发生变化时,使ADO Data控件重新连接数据库。 • 也可在执行AddNew方法后,新数据尚未写入数据库时,调用Refresh方法,清除用户所做的添加和修改。

  39. 19.2.4 RecordSet对象的常用属性及方法 • 1. RecordSet 对象的常用属性 • ADO Data控件将数据库中的指定数据提取出来,并放在一个记录集中,RecordSet即记录集对象,指当前数据库中的一系列记录。其主要属性如下: • (1) EOF 和 BOF属性 • 这两个属性是反映记录指针是否到记录头和记录尾的标志。如果记录指针位于第一条记录之前,则BOF=True 否则BOF=False。如果记录指针位于最后一条记录之后,则EOF=True 否则EOF=False。 • EOF 和 BOF属性具有以下特点: • 如果记录集是空的,则EOF 和 BOF的值都是True • 如果EOF 和 BOF的值成为True之后,只有当记录指针移到实际存在的记录上,二者的值才会变为False。

  40. (2) RecordCount属性 • 反映记录集中的记录总数。 例如要在Adodc1控件上显示记录总数,可用如下语句: • Adodc1.Caption = Adodc1.Recordset. RecordCount • (3) AbsolutePosition 属性 • 反映当前记录的位置。若当前显示的是第一条记录,则AbsolutePosition=1 • 例如要在Adodc1控件上显示当前记录的位置,可用如下语句: • Adodc1.Caption =Adodc1.Recordset.AbsolutePosition • 例如要在Adodc1控件上显示当前记录的位置及记录总数,可用如下语句: • Adodc1.Caption = Adodc1.Recordset.AbsolutePosition &"/" & Adodc1.Recordset.RecordCount

  41. 2. RecordSet 对象的常用方法 • (1)Move方法 • 利用ADO Data控件,通过编程的方法进行数据库浏览时,需要用到ADO Data控件的RecordSet对象的Move方法在记录集之间移动记录指针。主要有以下几种方法: • MoveNext 方法: 记录指针移到下一条记录 • MovePrevious方法: 记录指针移到上一条记录 • MoveFirst 方法: 记录指针移到第一条记录 • MoveLast 方法: 记录指针移到最后一条记录 • Move[n]方法: 使记录指针前移或后移n 条记录。n 为正数, 表示向后移动; n 为负数, 表示向前移动.

  42. 例19-2 设计数据浏览窗体,利用Move方法实现数据库的浏览。 • 在例19-1的基础上,添加按钮如图19-16,运行时不显示Adodc1(设其Visible属性为False),通过按钮实现记录指针的移动。

  43. 设置新增控件的属性如表。

  44. 编程如下: • Private Sub Form_Load()‘设置按钮的初始状态 • CmdFirst.Enabled = False ‘[首记录]按钮无效 • CmdPre.Enabled = False ‘[前移]按钮无效 • CmdNext.Enabled = True ‘后移]按钮有效 • CmdLast.Enabled = True ‘[末记录]按钮有效 • Label6.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount • End Sub

  45. Private Sub CmdFirst_Click() • Adodc1.Recordset.MoveFirst ' 记录指针移到首记录(显示首记录) • CmdFirst.Enabled = False ' 让[首记录]按钮无效 • CmdPre.Enabled = False ' 让[前移]按钮无效 • CmdNext.Enabled = True ' 让[后移]按钮有效 • CmdLast.Enabled = True ' 让[末记录]按钮有效 • ‘在Label6上显示当前记录号/记录总数: • Label6.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount • End Sub

  46. Private Sub CmdPre_Click() • Adodc1.Recordset.MovePrevious '记录指针移到前一条记录 • CmdNext.Enabled = True • CmdLast.Enabled = True • If Adodc1.Recordset .BOF Then ' 如果记录指针移到首记录之前, • Adodc1.Recordset.MoveFirst '则记录指针移到首记录上 • CmdFirst.Enabled = False • CmdPre.Enabled = False • End If • Label6.Caption ="记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount • End Sub

  47. Private Sub CmdNext_Click() • Adodc1.Recordset.MoveNext '记录指针移到下一条记录 • CmdFirst.Enabled = True • CmdPre.Enabled = True • If Adodc1.Recordset.EOF Then ' 如果记录指针移到了末记录之后 • Adodc1.Recordset.MoveLast '则记录指针移到末记录上 • CmdNext.Enabled = False • CmdLast.Enabled = False • End If • Label6.Caption = "记录:" &Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount • End Sub

  48. Private Sub CmdLast_Click() • Adodc1.Recordset.MoveLast' 移到末记录 • CmdFirst.Enabled = True • CmdPre.Enabled = True • CmdNext.Enabled = False • CmdLast.Enabled = False • Label6.Caption ="记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount • End Sub

  49. Private Sub CmdN_Click() • Dim n As Integer • n = Text6.Text • Adodc1.Recordset.Move n • Label6.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount • End Sub

  50. (2) AddNew 方法 • 功能:用于向数据表中增加空记录。 • (3) Uptate方法 • 功能:用来把添加的新记录或修改的记录保存到数据表中,该方法只能在AddNew方法被执行之后才能执行。

More Related