第8章数据控件课件

上传人:痛*** 文档编号:241647935 上传时间:2024-07-12 格式:PPT 页数:123 大小:1.13MB
返回 下载 相关 举报
第8章数据控件课件_第1页
第1页 / 共123页
第8章数据控件课件_第2页
第2页 / 共123页
第8章数据控件课件_第3页
第3页 / 共123页
点击查看更多>>
资源描述
第第8章章数据控件与数据绑定控件的使用数据控件与数据绑定控件的使用18.1VB开发数据库概述开发数据库概述8.1.1VB数据库开发功能概述数据库开发功能概述VB是微软公司发布的应用程序开发工具,不但具有强大的程序设计能力,是微软公司发布的应用程序开发工具,不但具有强大的程序设计能力,还具有强大的数据库编程能力。还具有强大的数据库编程能力。1.VB6.0数据库编程的特征数据库编程的特征VB处理的数据库属于关系类型数据库,由不同层次的对象组成。一个数处理的数据库属于关系类型数据库,由不同层次的对象组成。一个数据库由多个表组成,每个表包含若干字段。据库由多个表组成,每个表包含若干字段。支持支持ADO存取模式存取模式,即即ActiveXDataObject支持支持OLEDB和和COM,即对象连接与嵌入数据库和组件对象模型。其中,即对象连接与嵌入数据库和组件对象模型。其中COM是一种标准,按此标准开发的软件模块可以是一种标准,按此标准开发的软件模块可以“插入插入”到系统中使用。到系统中使用。可以针对可以针对SQLServer和和Oracle等不同的数据库服务器开发完善的客户等不同的数据库服务器开发完善的客户/服服务器应用程序。务器应用程序。具有管理和显示数据源的数据控件和数据绑定控件。数据控件用于与数具有管理和显示数据源的数据控件和数据绑定控件。数据控件用于与数据库连接,数据绑定控件用于显示数据表的记录。据库连接,数据绑定控件用于显示数据表的记录。提供报表设计工具,能够快速生成报表提供报表设计工具,能够快速生成报表提供了使用和配置连接的工具与命令,及进行提供了使用和配置连接的工具与命令,及进行ODBC开发的开发的API函数。函数。22.VB作为数据库开发平台的优点作为数据库开发平台的优点(1)简单性简单性VB为每种数据访问模式提供了相应的控件,通过控件,可为每种数据访问模式提供了相应的控件,通过控件,可以方便地连接数据库,只需编写少量的代码甚至不用编写代以方便地连接数据库,只需编写少量的代码甚至不用编写代码就可以访问和操作数据库。码就可以访问和操作数据库。(2)灵活性)灵活性VB不象一般数据库那样局限于特定的应用程序结构不象一般数据库那样局限于特定的应用程序结构,也不需也不需要用某些指令对打开的数据库进行操作。要用某些指令对打开的数据库进行操作。(3)可扩充性)可扩充性在在VB中可以用中可以用ActiveX控件,这些控件可以由微软公司提供,控件,这些控件可以由微软公司提供,也可以由第三方开发。有了也可以由第三方开发。有了ActiveX控件,可以在控件,可以在VB中增加中增加新功能。新功能。38.1.2VB6.0支持的数据库种类支持的数据库种类数据库编程语言一般都有自己特定格式的数据库。数据库编程语言一般都有自己特定格式的数据库。VB默认的数据库格式与默认的数据库格式与MicrosoftAccess格式相同格式相同.可以对其它多种格式的数据库进行操作和处理。可以对其它多种格式的数据库进行操作和处理。VB支持的数据库有以下三类:支持的数据库有以下三类:lVB本地数据库,与本地数据库,与MicrosoftAccess格式相同。格式相同。l外部数据库,如外部数据库,如dbase,MicrosoftFoxPro等。等。lODBC数据库,支持符合数据库,支持符合ODBC标准的客户标准的客户-服服务器数据库,如务器数据库,如:MicrosoftSQLServer,Oracle等。等。48.1.3VB6.0支持的数据存取模式支持的数据存取模式VB6.0支持的数据库存取模式有以下三种:支持的数据库存取模式有以下三种:l数据存取对象数据存取对象(DataAccessObjects,简称简称DAO)l远程数据对象远程数据对象(RemoteDataObjects,简称简称RDO)lActiveX数据对象数据对象(ActiveXDataObjects,简称简称ADO)1DAO简介简介DAO模式是模式是VB最早期的数据访问模式。最早期的数据访问模式。是以是以Microsoft的的Jet数据库引擎为核心而发展起来的一组动数据库引擎为核心而发展起来的一组动态链接库。它提供了两种类型来支持数据库:态链接库。它提供了两种类型来支持数据库:l通过通过Microsoft的的Jet数据库引擎来操作本地数据库。数据库引擎来操作本地数据库。l通过使用通过使用ODBCDirect,来存取,来存取ODBC数据库。数据库。使用使用ODBC存取方法,存取方法,DAO可以访问任何提供标准可以访问任何提供标准ODBC驱驱动程序的客户动程序的客户/服务器数据库。服务器数据库。52RDO简介简介远程数据库是数据库应用中新兴的领域,随着远程数据库是数据库应用中新兴的领域,随着Internet的推广,网络数据库应用系统日益增加。的推广,网络数据库应用系统日益增加。对于网络应用程序来说,其数据访问端与数据库之对于网络应用程序来说,其数据访问端与数据库之间有比较远的距离,使用间有比较远的距离,使用DAO组件已不能满足远程组件已不能满足远程数据访问的要求,因此应使用远程数据对象数据访问的要求,因此应使用远程数据对象RDO来来访问数据库。访问数据库。RDO直接与数据库服务器连接,所以它比较适合于直接与数据库服务器连接,所以它比较适合于客户机客户机/服务器方式。服务器方式。63ADO简介简介ADO是是最新的数据访问技术最新的数据访问技术,ADO提供了较为高提供了较为高级的访问级的访问OLEDB数据源的机制,它结合了数据源的机制,它结合了DAO和和RDO的优点,并提供了的优点,并提供了OLEDB数据源的入口。数据源的入口。OLEDB是一个低层的数据访问接口,它向应用程是一个低层的数据访问接口,它向应用程序提供了一个统一的数据访问方法,利用它可以访序提供了一个统一的数据访问方法,利用它可以访问各种数据源,包括传统的关系型数据库、电子邮问各种数据源,包括传统的关系型数据库、电子邮件系统及自定义的商业对象。件系统及自定义的商业对象。78.1.4SQLServer数据库的数据库的DSN的配置的配置1开放式数据库互连(开放式数据库互连(ODBC)开放式数据库互连开放式数据库互连ODBC(OpenDatabaseConnectivity)的概念来源于对多个数据库数据存)的概念来源于对多个数据库数据存取的需求。取的需求。在早期的数据库编程中,由于不同的数据库管理系在早期的数据库编程中,由于不同的数据库管理系统统(DBMS),有自己的数据库格式和嵌入式的,有自己的数据库格式和嵌入式的SQL语语言,即使应用程序完成同样的功能,但只要言,即使应用程序完成同样的功能,但只要DBMS选取的不同,则编写的程序将完全不同。程序员为选取的不同,则编写的程序将完全不同。程序员为了能够访问不同的数据库而不得不学习多个了能够访问不同的数据库而不得不学习多个DBMS的内容。的内容。8希望摆脱专用数据库本身的约束,对于不同的希望摆脱专用数据库本身的约束,对于不同的DBMS,采用统一的编程界面,从而使数据库应用,采用统一的编程界面,从而使数据库应用程序在访问另外一种数据库格式时,不需要对源程程序在访问另外一种数据库格式时,不需要对源程序进行修改。序进行修改。ODBC开发的最初目标就是为开发的最初目标就是为Windows程序员提供一套访问数据库的程序员提供一套访问数据库的SQL函数调函数调用,而这些函数的调用采用相同的用户界面。用,而这些函数的调用采用相同的用户界面。ODBC用户可以用用户可以用ODBC的的SQL语句访问任何支持语句访问任何支持ODBC标准的数据库,从而使应用程序访问不同的标准的数据库,从而使应用程序访问不同的数据库的操作不依赖任何数据库的操作不依赖任何DBMS,也为程序的跨平,也为程序的跨平台开发和移植提供了方便。台开发和移植提供了方便。92DSN的配置的配置DSN的意思是应用程序用以请求一个连接到的意思是应用程序用以请求一个连接到ODBC数据源的连接数据源的连接(Connection)的名字,即它代表一个的名字,即它代表一个ODBC连接的名称,连接的名称,内含了数据库文件名、所在目内含了数据库文件名、所在目录、数据库驱动程序、用户录、数据库驱动程序、用户ID、密码等细节、密码等细节,使得,使得应用程序访问数据库时,只要给出事先注册的应用程序访问数据库时,只要给出事先注册的DSN,而不必考虑以上细节问题,从而使程序中访问数,而不必考虑以上细节问题,从而使程序中访问数据库变得简单。据库变得简单。DSN可以分为以下三种可以分为以下三种:l系统系统DSN:可以被登录到系统中的所有用户使用:可以被登录到系统中的所有用户使用l用户用户DSN:只能被建立它的用户使用:只能被建立它的用户使用l文档文档DSN:把信息存储在后缀名为:把信息存储在后缀名为.dsn的文件的文件中,如果文件放在网络共享的驱动器中,就可以中,如果文件放在网络共享的驱动器中,就可以被所有安装了相同驱动程序的用户共享。被所有安装了相同驱动程序的用户共享。10DSN配置步骤如下:配置步骤如下:以前边建立的数据库以前边建立的数据库“成绩管理成绩管理”为例为例。(1)打开)打开ODBC数据源管理器数据源管理器ODBC数据源管理器用来管理本机上所有的数据源管理器用来管理本机上所有的ODBC数据源,如注册新的数据源名称,删除或修改数据数据源,如注册新的数据源名称,删除或修改数据源等。源等。单击单击开始开始设置设置控制面板控制面板,打开控制面板窗打开控制面板窗口;口;在其中双击在其中双击管理工具管理工具图标,打开管理工具窗口;图标,打开管理工具窗口;双击双击数据源数据源ODBC图标,即可打开图标,即可打开ODBC数据源数据源管理器如图管理器如图8-2。图图8-2ODBC数据源管理器数据源管理器11(2)选择数据源类型并添加数据源)选择数据源类型并添加数据源在在ODBC数据源管理器数据源管理器中,单击中,单击系统系统DSN选项卡,选项卡,再单击再单击添加添加按钮,将出现按钮,将出现创建新数据源创建新数据源对话框对话框如图如图8-3。图图8-3创建新数据源对话框创建新数据源对话框12(3)选择驱动程序)选择驱动程序在图在图8-3所示的驱动器列表中,选择所示的驱动器列表中,选择“SQLServer”并单击并单击完成完成按钮,打开向导窗口如图按钮,打开向导窗口如图8-4。图图8-4设置数据源名称及服务器设置数据源名称及服务器13(4)设置数据源)设置数据源在数据源在数据源名称名称框中输入一个数据源名称(如框中输入一个数据源名称(如cjgl),),说明说明框中可不输入,然后在框中可不输入,然后在服务器服务器列列表框中选择需要连接的表框中选择需要连接的SQLServer服务器。服务器。(5)设置身份验证方式)设置身份验证方式单击单击下一步下一步按钮,打开对话框如图按钮,打开对话框如图9-5所示。在该所示。在该对话框中,可以设置身份验证方式。若选择对话框中,可以设置身份验证方式。若选择使用使用用户输入登录用户输入登录ID和密码的和密码的SQLServer验证验证,需要,需要输入登录输入登录ID和密码,和密码,sa是是SQLServer2000的系统的系统管理员帐号。管理员帐号。图图8-5设置身份验证方式设置身份验证方式14(6)设置默认的数据库)设置默认的数据库单击单击下一步下一步按钮,打开设置数据库选项对话框,按钮,打开设置数据库选项对话框,如图如图8-6所示。系统默认的数据库为所示。系统默认的数据库为master,在,在更更改默认的数据库为改默认的数据库为下拉列表框中,选择下拉列表框中,选择“成绩管成绩管理理”,即将默认数据库设置为所需要的数据库。,即将默认数据库设置为所需要的数据库。图图8-6设置数据库连接设置数据库连接15(7)设置其它属性)设置其它属性单击单击下一步下一步按钮,打开设置其它属性的窗口,如按钮,打开设置其它属性的窗口,如图图8-7所示。在此可以设置用于所示。在此可以设置用于SQLServer消息的消息的语言、数据加密、字符数据转换等等。语言、数据加密、字符数据转换等等。图图9-7设置其它属性设置其它属性16(8)单击)单击完成完成按钮,将打开数据源的汇总信息按钮,将打开数据源的汇总信息窗口,如图窗口,如图8-8所示。在此窗口中综合显示了数据所示。在此窗口中综合显示了数据源的各项设置,从而决定是否创建数据库。源的各项设置,从而决定是否创建数据库。图图8-8数据源汇总信息显示数据源汇总信息显示17(9)单击)单击测试数据源测试数据源按钮,可以检查数据源配按钮,可以检查数据源配置是否成功。若配置成功,将显示图置是否成功。若配置成功,将显示图8-9所示的对所示的对话框。话框。图图8-9测试数据源结果显示测试数据源结果显示188.2数据库访问控件的应用数据库访问控件的应用在在VB中,开发数据库应用程序有两种方式:一种中,开发数据库应用程序有两种方式:一种是利用是利用VB提供的数据库访问控件,另一种是编写提供的数据库访问控件,另一种是编写程序代码。程序代码。VB6.0提供了支持提供了支持DAO、RDO、ADO的特殊控件,的特殊控件,以便访问和操作数据库。以便访问和操作数据库。lData控件可以创建控件可以创建DAO对象,对象,lRemoteData控件可以创建控件可以创建RDO对象对象,lADOData控件可以创建控件可以创建ADO对象对象利用这些控件可以方便地连接到数据库并操作数据利用这些控件可以方便地连接到数据库并操作数据库,但这些控件并不能显示数据,必须借助数据绑库,但这些控件并不能显示数据,必须借助数据绑定控件(如文本框等)显示、修改数据。使用数据定控件(如文本框等)显示、修改数据。使用数据库访问控件,可以库访问控件,可以简化开发过程,减少代码编写量,简化开发过程,减少代码编写量,从而提高工作效率从而提高工作效率。19ADOData控件与控件与Data控件、控件、RemoteData控件相比,控件相比,ADOData控件的功能更为强大,使用更为方便。控件的功能更为强大,使用更为方便。因此本章主要介绍支持因此本章主要介绍支持ADO的数据控件的数据控件ADOData,及与其绑定的数据绑定控件的主要功能及其应用。,及与其绑定的数据绑定控件的主要功能及其应用。208.2.1ADOData控件及数据绑定控件控件及数据绑定控件ADOData控件可以说是连接数据库和数据绑定控控件可以说是连接数据库和数据绑定控件的桥梁。件的桥梁。通过设置通过设置ADOData控件的属性,可以让它和已存控件的属性,可以让它和已存在的数据库联系起来并能指定访问数据库中的某个在的数据库联系起来并能指定访问数据库中的某个表,并通过数据绑定控件表,并通过数据绑定控件(如文本框如文本框,复选框等控件复选框等控件),显示数据库中的数据。,显示数据库中的数据。数据绑定控件用来显示数据表中的数据。需将控件数据绑定控件用来显示数据表中的数据。需将控件绑定到绑定到ADOData控件上的某字段上,就可显示和控件上的某字段上,就可显示和修改该字段的数据。修改该字段的数据。21文本框文本框(Text):显示或输入数据显示或输入数据标签标签(Label):显示数据显示数据复选框复选框(Check):显示逻辑类型字段显示逻辑类型字段,True(Yes)/False(No)列表框列表框(List),组合框组合框(Combo):显示数据列表显示数据列表,图像框图像框(Image),图片框图片框(Picture):显示图片显示图片,要求要求字段为二进制类型字段为二进制类型.OLE容器控件容器控件:显示显示OLE类型字段的数据类型字段的数据其它其它ActiveX控件控件.可以与可以与ADOData控件一起使用的数据绑定控控件一起使用的数据绑定控件有件有:22大多数数据绑定控件都有以下这三种属性:大多数数据绑定控件都有以下这三种属性:(1)DataSource:数据源属性。指定需要绑定到:数据源属性。指定需要绑定到的的ADOData控件的名称。控件的名称。(2)DataField:用来指定绑定到哪个字段上。:用来指定绑定到哪个字段上。(3)DataChange:用来指出显示在绑定控件里的:用来指出显示在绑定控件里的数据是否已经被改变,如果改变,值为数据是否已经被改变,如果改变,值为True,否则,否则值为值为False。238.2.2用用ADOData控件建立数据库应用程序控件建立数据库应用程序下面通过一个简单的例子,介绍用下面通过一个简单的例子,介绍用ADOData控件建立数控件建立数据浏览窗体的基本步骤。据浏览窗体的基本步骤。(1)新建一个标准的新建一个标准的VB工程,将工程,将ADOData控件添加到工控件添加到工具箱中具箱中执行菜单执行菜单工程工程部件部件,打开,打开“部件部件”对话框,对话框,在在“控件控件”列表框中选中列表框中选中“MicrosoftADODataControl6.0(OLEDB)”项,将项,将ADOData控件添加到工具箱中。控件添加到工具箱中。(2)将将ADOData控件添加到窗体上控件添加到窗体上在窗体上,在窗体上,ADOData控件的外观如图控件的外观如图8-10所示,默认控件所示,默认控件名称为名称为Adodc1,可以单击其上的箭头按钮在记录之间移动。可以单击其上的箭头按钮在记录之间移动。图图8-10ADOData控件的外观控件的外观24(3)设置设置ADOData控件的数据源连接属性控件的数据源连接属性操作步骤如下:操作步骤如下:在在Adodc1控件的属性窗口中,选择控件的属性窗口中,选择(自定义自定义)属性右属性右边的边的按钮,打开按钮,打开属性页属性页对话框,或鼠标右击对话框,或鼠标右击Adodc1控件,在弹出的快捷菜单中选择控件,在弹出的快捷菜单中选择属性属性命令,命令,打开打开属性页属性页对话框如图对话框如图8-11所示。所示。在在通用通用选项卡中选择选项卡中选择“使用使用ODBC数据资源名称数据资源名称”,并在下拉列表中选择前边建立的,并在下拉列表中选择前边建立的ODBC数据源数据源名名“cjgl”。图图8-11ADOData控件的控件的属性页属性页对话框对话框25单击单击身份验证身份验证选项卡(如图选项卡(如图8-12),输入用户名(例如),输入用户名(例如sa)和密码(例如和密码(例如sa)。)。单击单击记录源记录源选项卡(如图选项卡(如图8-13),在该选项卡中,可以设置),在该选项卡中,可以设置ADOData控件的返回记录的记录源。控件的返回记录的记录源。记录源是从命令对象获取的,可以在记录源是从命令对象获取的,可以在命令类型命令类型下拉列表中选下拉列表中选择用于记录源的命令类型。各种命令类型的含义如表所示。择用于记录源的命令类型。各种命令类型的含义如表所示。命令命令类型型含含义8-adCmdUnknow未知未知类型,用型,用户需在需在命令文本命令文本(SQL)框中框中输入入SQL语句建立命令句建立命令对象象1-adCmdText文本文本类型,用型,用户需在需在命令文本命令文本(SQL)框中框中输入入SQL语句建立命令句建立命令对象象2-adCmdTable表表类型,用型,用户需在需在表或存表或存储过程名称程名称下拉列表中下拉列表中选择一个数据表来建立命令一个数据表来建立命令对象象(相当于(相当于输入:入:Select*FromTable)4-adCmdStoredProc存存储过程,用程,用户需在需在表或存表或存储过程名称程名称下拉列表中下拉列表中选择一个一个查询的名称来建立命令的名称来建立命令对象象26图图8-12身份验证的设置身份验证的设置图图8-13记录源的设置记录源的设置27例如要访问学生信息表,选择命令类型为例如要访问学生信息表,选择命令类型为:l2-adCmdTable然后在然后在表或存储过程名称表或存储过程名称下拉列表框中选择下拉列表框中选择“学学生信息表生信息表”(如图(如图8-13所示)。设置完成后,单击所示)。设置完成后,单击确定确定按钮。按钮。也可以选择命令类型为也可以选择命令类型为1-adCmdText,然后在,然后在命命令文本令文本(SQL)框中输入如下框中输入如下SQL语句:语句:lSelect*From学生信息表学生信息表设置完成后,单击设置完成后,单击确定确定按钮。按钮。28(4)向窗体中添加其他数据绑定控件,并绑定到向窗体中添加其他数据绑定控件,并绑定到Adodc1上上在窗体在窗体Form1上,添加上,添加5个文本框用于显示字段中个文本框用于显示字段中的数据,的数据,5个标签用于说明对应的字段名(见图个标签用于说明对应的字段名(见图8-14)。)。图图8-14数据浏览窗体设计界面数据浏览窗体设计界面29将控件将控件(如如Text)绑定到绑定到Adodc1上的方法如下:上的方法如下:l设置绑定控件的设置绑定控件的DataSource属性为数据控件名属性为数据控件名:lAdodc1l设置绑定控件的设置绑定控件的DataField属性为要显示的字段属性为要显示的字段名名l各个文本框的属性设置如表各个文本框的属性设置如表8-2所示所示.l考虑到浏览数据的窗体,不应允许修改数据,所考虑到浏览数据的窗体,不应允许修改数据,所以将文本框的以将文本框的Locked属性设为属性设为True,使之只能,使之只能显示数据而不能修改或输入数据。显示数据而不能修改或输入数据。30当所有文本框都通过表当所有文本框都通过表8-2所示的属性设置后,即完成了绑定所示的属性设置后,即完成了绑定到到Adodc1所连接的数据源。这时可运行程序,结果如图所连接的数据源。这时可运行程序,结果如图9-15所所示,可见文本框中显示了学生信息表的第一条记录信息,若单示,可见文本框中显示了学生信息表的第一条记录信息,若单击击Adodc1上的按钮,可显示其他记录上的按钮,可显示其他记录。控件名控件名属性名属性名属性属性值控件名控件名属性名属性名属性属性值Text1DataSourceAdodc1Text3DataSourceAdodc1DataField学号学号DataField性性别LockedTrueLockedTrueText2DataSourceAdodc1Text4DataSourceAdodc1DataField姓名姓名DataField生日生日LockedTrueLockedTrueText2DataSourceAdodc1Text2LockedTrueDataField专业图图8-15数据浏览窗体运行界面数据浏览窗体运行界面318.2.3ADOData控件的常用属性及方法控件的常用属性及方法1.ADOData控件的常用属性介绍如下控件的常用属性介绍如下:Name:名称。默认名称:名称。默认名称:Adodc1,Adodc2等。等。Caption:设置显示在控件上的标题。设置显示在控件上的标题。ConnectionString:设置到数据源的连接信息。:设置到数据源的连接信息。CommandType:设置返回记录集的类型。:设置返回记录集的类型。CommandType的值用于指明的值用于指明RecordSource的的类型。类型。CommandType的取的取值及含义如下:值及含义如下:1-adCmdText:文本类型,可在:文本类型,可在命令文本框命令文本框中输入中输入SQL语语句。表示返回的记录集是执行句。表示返回的记录集是执行SQL语句的结果。语句的结果。2-adCmdTable:表类型。可在:表类型。可在表或存储过程名表或存储过程名框中选择框中选择一个表名称一个表名称(相当于选择表的所有字段相当于选择表的所有字段)。表示返回的记录集。表示返回的记录集类型是一个数据表。类型是一个数据表。4-adCmdStoredProc:存储过程类型。:存储过程类型。32ReocordSurce:记录源。返回或设置:记录源。返回或设置Recordset的生的生成方式。可以是成方式。可以是SQL语句,表名,查询名等。语句,表名,查询名等。Recordset:记录集对象。:记录集对象。2.ADOData控件的控件的Refresh方法方法功能:重新读数据库,刷新记录集。功能:重新读数据库,刷新记录集。使用格式:使用格式:Adodc1.RefreshRefresh方法可用于方法可用于ADOData控件的数据源连接发控件的数据源连接发生变化时,使生变化时,使ADOData控件重新连接数据库。控件重新连接数据库。也可在执行也可在执行AddNew方法后,新数据尚未写入数据方法后,新数据尚未写入数据库时,调用库时,调用Refresh方法,清除用户所做的添加和修方法,清除用户所做的添加和修改。改。338.2.4RecordSet对象的常用属性及方法对象的常用属性及方法1.RecordSet对象的常用属性对象的常用属性ADOData控件将数据库中的指定数据提取出来,并放在一控件将数据库中的指定数据提取出来,并放在一个记录集中,个记录集中,RecordSet即记录集对象,指当前数据库中的即记录集对象,指当前数据库中的一系列记录。其主要属性如下:一系列记录。其主要属性如下:(1)EOF和和BOF属性属性这两个属性是反映记录指针是否到记录头和记录尾的标志。这两个属性是反映记录指针是否到记录头和记录尾的标志。如果记录指针位于第一条记录之前,则如果记录指针位于第一条记录之前,则BOF=True否则否则BOF=False。如果记录指针位于最后一条记录之后,则。如果记录指针位于最后一条记录之后,则EOF=True否则否则EOF=False。EOF和和BOF属性具有以下特点:属性具有以下特点:l如果记录集是空的,则如果记录集是空的,则EOF和和BOF的值都是的值都是Truel如果如果EOF和和BOF的值成为的值成为True之后,只有当记录指针移之后,只有当记录指针移到实际存在的记录上,二者的值才会变为到实际存在的记录上,二者的值才会变为False。34(2)RecordCount属性属性反映记录集中的记录总数。反映记录集中的记录总数。例如要在例如要在Adodc1控件上显示控件上显示记录总数,可用如下语句:记录总数,可用如下语句:Adodc1.Caption=Adodc1.Recordset.RecordCount(3)AbsolutePosition属性属性反映当前记录的位置。若当前显示的是第一条记录,则反映当前记录的位置。若当前显示的是第一条记录,则AbsolutePosition=1例如要在例如要在Adodc1控件上显示当前记录的位置,可用如下语控件上显示当前记录的位置,可用如下语句:句:lAdodc1.Caption=Adodc1.Recordset.AbsolutePosition例如要在例如要在Adodc1控件上显示当前记录的位置及记录总数,控件上显示当前记录的位置及记录总数,可用如下语句:可用如下语句:Adodc1.Caption=Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCount352.RecordSet对象的常用方法对象的常用方法(1)Move方法方法利用利用ADOData控件,通过编程的方法进行数据库控件,通过编程的方法进行数据库浏览时,需要用到浏览时,需要用到ADOData控件的控件的RecordSet对象对象的的Move方法在记录集之间移动记录指针。主要有方法在记录集之间移动记录指针。主要有以下几种方法:以下几种方法:MoveNext方法方法:记录指针移到下一条记录记录指针移到下一条记录MovePrevious方法方法:记录指针移到上一条记录记录指针移到上一条记录MoveFirst方法方法:记录指针移到第一条记录记录指针移到第一条记录MoveLast方法方法:记录指针移到最后一条记录记录指针移到最后一条记录Moven方法方法:使记录指针前移或后移使记录指针前移或后移n条记录。条记录。n为正数为正数,表示向后移动;表示向后移动;n为负数为负数,表示向前移动表示向前移动.36例例8-2设计数据浏览窗体,利用设计数据浏览窗体,利用Move方法实现数据方法实现数据库的浏览。库的浏览。在例在例8-1的基础上,添加按钮如图的基础上,添加按钮如图8-16,运行时不显,运行时不显示示Adodc1(设其设其Visible属性为属性为False),通过按钮实现,通过按钮实现记录指针的移动。记录指针的移动。图图8-16例例8-2运行界面运行界面37设置新增控件的属性如表。设置新增控件的属性如表。控件名控件名属性名属性名属性属性值作用作用CmdFirstCaption首首记录将将记录指指针移到移到第第1条条记录CmdPreCaption前移前移记录指指针向前移向前移动一条一条记录CmdNextCaption后移后移记录指指针向后移向后移动一条一条记录CmdLastCaption末末记录将将记录指指针移到移到末条末条记录CmdNCaption移移动记录数数一次移一次移动n条条记录Text6Text空空输入要移入要移动的的记录数量数量Label6caption空空显示当前示当前记录数数及及记录总数数38编程如下编程如下:PrivateSubForm_Load()设置按钮的初始状态设置按钮的初始状态CmdFirst.Enabled=False首记录首记录按钮无效按钮无效CmdPre.Enabled=False前移前移按钮无效按钮无效CmdNext.Enabled=True后移后移按钮有效按钮有效CmdLast.Enabled=True末记录末记录按钮有效按钮有效Label6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub39PrivateSubCmdFirst_Click()Adodc1.Recordset.MoveFirst记录指针移到首记录(显示记录指针移到首记录(显示首记录)首记录)CmdFirst.Enabled=False让让首记录首记录按钮无效按钮无效CmdPre.Enabled=False让让前移前移按钮无效按钮无效CmdNext.Enabled=True让让后移后移按钮有效按钮有效CmdLast.Enabled=True让让末记录末记录按钮有效按钮有效在在Label6上显示当前记录号上显示当前记录号/记录总数:记录总数:Label6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub40PrivateSubCmdPre_Click()Adodc1.Recordset.MovePrevious记录指针移到前一条记录记录指针移到前一条记录CmdNext.Enabled=TrueCmdLast.Enabled=TrueIfAdodc1.Recordset.BOFThen如果记录指针移到首记录之前如果记录指针移到首记录之前,Adodc1.Recordset.MoveFirst则记录指针移到首记录上则记录指针移到首记录上CmdFirst.Enabled=FalseCmdPre.Enabled=FalseEndIfLabel6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub41PrivateSubCmdNext_Click()Adodc1.Recordset.MoveNext记录指针移到下一条记录记录指针移到下一条记录CmdFirst.Enabled=TrueCmdPre.Enabled=TrueIfAdodc1.Recordset.EOFThen如果记录指针移到了末记录之后如果记录指针移到了末记录之后Adodc1.Recordset.MoveLast则记录指针移到末记录上则记录指针移到末记录上CmdNext.Enabled=FalseCmdLast.Enabled=FalseEndIfLabel6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub42PrivateSubCmdLast_Click()Adodc1.Recordset.MoveLast移到末记录移到末记录CmdFirst.Enabled=TrueCmdPre.Enabled=TrueCmdNext.Enabled=FalseCmdLast.Enabled=FalseLabel6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub43PrivateSubCmdN_Click()DimnAsIntegern=Text6.TextAdodc1.Recordset.MovenLabel6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub44(2)AddNew方法方法功能:用于向数据表中增加空记录。功能:用于向数据表中增加空记录。(3)Uptate方法方法功能:用来把添加的新记录或修改的记录保存到数功能:用来把添加的新记录或修改的记录保存到数据表中,该方法只能在据表中,该方法只能在AddNew方法被执行之后才方法被执行之后才能执行。能执行。45增加记录的操作可分为以下增加记录的操作可分为以下3步:步:l调用调用RecordSet对象的对象的AddNew方法,增加一个方法,增加一个空记录,语句格式如下:空记录,语句格式如下:lAdodc1.RecordSet.AddNewl在数据绑定控件中输入记录值,或用代码给字段在数据绑定控件中输入记录值,或用代码给字段赋值,格式如下:赋值,格式如下:lAdodc1.RecordSet.Fields(“字段名字段名”)=值值l调用调用Update方法,将输入的新记录值保存到数方法,将输入的新记录值保存到数据表中,语句格式如下:据表中,语句格式如下:lAdodc1.RecordSet.Update(4)Delete方法方法l功能:删除当前记录。功能:删除当前记录。l使用格式:使用格式:Adodc1.RecordSet.Delete46例例8-3设计数据编辑窗体。设计数据编辑窗体。该窗体具有新增记录、删除记录、修改记录、取消该窗体具有新增记录、删除记录、修改记录、取消修改等功能。当新增记录或修改记录时,只要没有修改等功能。当新增记录或修改记录时,只要没有单击单击确定确定按钮,单击按钮,单击取消取消按钮,可以取消上述按钮,可以取消上述操作。操作。在例在例8-2的基础上,增加以下功能按钮:的基础上,增加以下功能按钮:添加添加(CmdAdd):执行记录集的:执行记录集的AddNew方法方法删除删除(CmdDel):执行记录集的:执行记录集的Delete方法方法确定确定(CmdOk):执行记录集的:执行记录集的Update方法方法取消取消(CmdEsc):执行数据控件的:执行数据控件的Refresh方法方法图图8-17例例9-3运行界面运行界面47编写代码编写代码PrivateSubForm_Load()CmdFirst.Enabled=False首记录首记录按钮无效按钮无效CmdPre.Enabled=False前移前移按钮无效按钮无效CmdNext.Enabled=True后移后移按钮有效按钮有效CmdLast.Enabled=True末记录末记录按钮有效按钮有效CmdAdd.Enabled=True添加添加按钮有效按钮有效CmdDel.Enabled=True删除删除按钮有效按钮有效CmdOk.Enabled=False确定确定按钮无效按钮无效CmdEsc.Enabled=False取消取消按钮无效按钮无效Label6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub48PrivateSubCmdAdd_Click()添加添加按钮的单击事件按钮的单击事件Adodc1.Recordset.AddNewCmdAdd.Enabled=FalseCmdDel.Enabled=FalseCmdOk.Enabled=TrueCmdEsc.Enabled=TrueEndSubPrivateSubCmdOk_Click()单击单击确认确认按钮按钮Adodc1.Recordset.UpdateCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdEsc.Enabled=FalseEndSub49PrivateSubCmdDel_Click()单击单击删除删除按钮按钮x=MsgBox(确实要删除当前记录吗?确实要删除当前记录吗?,vbYesNo+vbQuestion,确认确认)Ifx=vbYesThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfElseAdodc1.RefreshEndIfEndSub50PrivateSubCmdEsc_Click()取消按钮取消按钮Adodc1.RefreshCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdEsc.Enabled=FalseEndSub518.3数据绑定控件的应用数据绑定控件的应用8.3.1数据绑定控件的概念数据绑定控件的概念数据绑定控件是数据显示控件,只要将数据绑定控件绑定到数据绑定控件是数据显示控件,只要将数据绑定控件绑定到ADOData控件的控件的Recordset对象中的某个字段上,就可以显对象中的某个字段上,就可以显示当前记录的该字段的值,并且可以接受用户对数据的修改。示当前记录的该字段的值,并且可以接受用户对数据的修改。使用绑定控件的方法和步骤为:使用绑定控件的方法和步骤为:l将绑定控件添加到窗体上,并调整大小和布局。将绑定控件添加到窗体上,并调整大小和布局。l设置控件的一般属性。设置控件的一般属性。l设置控件的设置控件的DataSource属性,即绑定到属性,即绑定到ADOData控件。控件。l设置控件的设置控件的DataField属性,即绑定到属性,即绑定到ADOData控件的控件的记录集对象记录集对象(Recordset)的某个字段上。的某个字段上。注意:数据绑定控件的注意:数据绑定控件的DataSource属性在运行时是不可属性在运行时是不可改改的,的,所以不能在运行程序时通过代码设置该属性。所以不能在运行程序时通过代码设置该属性。52【例例8.4】设计含有学生照片字段的学生信息编辑窗设计含有学生照片字段的学生信息编辑窗体。体。在以前建立的学生信息表中增加在以前建立的学生信息表中增加“照片照片”字段。每字段。每个学生的照片以图片文件形式存放在磁盘中,图片个学生的照片以图片文件形式存放在磁盘中,图片文件名及其所在的路径(位置)存放在学生信息表文件名及其所在的路径(位置)存放在学生信息表中的照片字段中,所以该字段的类型设为中的照片字段中,所以该字段的类型设为varchar型。型。本题采用本题采用Image显示照片,因为将显示照片,因为将Image控件的控件的Stretch属性设为属性设为True,可以自动调整图片的大小以,可以自动调整图片的大小以适应适应Image控件边框的大小。控件边框的大小。用用Image或或Picture控件显示图片的方法控件显示图片的方法:lImage1.Picture=LoadPicture(图片文件名图片文件名)lPicture1.Picture=LoadPicture(图片文件名图片文件名)53将该图片加载到将该图片加载到Image1上,可执行如下语句:上,可执行如下语句:Image1.Picture=LoadPicture(d:lzwphotface01.jpg)若要清空图象框,即若要清空图象框,即Image1中不显示图片,可执行中不显示图片,可执行如下语句:如下语句:Image1.Picture=LoadPicture()如果要将存放在数据表中如果要将存放在数据表中“照片照片”字段的图片文件字段的图片文件装载到装载到Picture1上显示出来,可执行如下语句:上显示出来,可执行如下语句:Picture1.Picture=LoadPicture(Adodc1.RecordSet.Fields(照片照片)54设计过程如下:设计过程如下:(1)设计界面如图)设计界面如图8.18所示。所示。图8.18 例8.4的设计界面增加了一个增加了一个Image1,用于,用于显示照片;显示照片;增加增加“浏览浏览”按钮,用按钮,用于在录入照片时,显示于在录入照片时,显示“打开文件打开文件”对话框,以便对话框,以便用户选择图片文件;用户选择图片文件;增加增加CommanDialog控件,控件,用于提供用于提供“打开文件打开文件”对对话框话框。55(2)设置新增控件的属性如表所示。)设置新增控件的属性如表所示。控件名控件名属性名属性名属性值属性值按钮按钮CmdFindCaption浏览浏览图像框图像框Image1stretchTrueBorderStyle1-FixedSingle(单边单边框框)通用对话框通用对话框Cdialog1Caption打开文件打开文件56(3)编写代码如下:)编写代码如下:PrivateSubForm_Load()CmdFirst.Enabled=FalseCmdPre.Enabled=FalseCmdNext.Enabled=TrueCmdLast.Enabled=TrueAdodc1.Recordset.MoveFirstCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdEsc.Enabled=FalseLabel6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/_&Adodc1.Recordset.RecordCountImage1.Picture=LoadPicture(Adodc1.Recordset.Fields(照片照片)显示显示照片照片CmdFind.Visible=False浏览浏览按钮不可见按钮不可见EndSub57单击单击“添加添加”按钮的代码按钮的代码PrivateSubCmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.Enabled=FalseCmdDel.Enabled=FalseCmdOk.Enabled=TrueCmdEsc.Enabled=TrueImage1.Picture=LoadPicture()清空图像框清空图像框CmdFind.Visible=True浏览浏览按钮可见按钮可见EndSub58单击单击浏览浏览按钮的代码:按钮的代码:PrivateSubCmdFind_Click()CDialog1.ShowOpen显示显示“打开文件打开文件”对话框对话框Adodc1.Recordset.Fields(照片照片)=CDialog1.FileName选中的文件名送数据表中选中的文件名送数据表中Image1.Picture=LoadPicture(Adodc1.Recordset.Fields(照照片片)显示照片显示照片EndSub59PrivateSubCmdOk_Click()单击单击“确认确认”按钮的代码按钮的代码Adodc1.Recordset.UpdateCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdEsc.Enabled=FalseCmdFind.Visible=FalseLabel6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&_Adodc1.Recordset.RecordCountEndSub60PrivateSubCmdFirst_Click()单击单击“首记录首记录”按钮的代按钮的代码码Adodc1.Recordset.MoveFirstCmdFirst.Enabled=FalseCmdPre.Enabled=FalseCmdNext.Enabled=TrueCmdLast.Enabled=TrueImage1.Picture=LoadPicture(Adodc1.Recordset.Fields(照照片片)Label6.Caption=记录:记录:&Adodc1.Recordset.AbsolutePosition&/&Adodc1.Recordset.RecordCountEndSub61“删除删除”、“取消取消”按钮的单击事件过程代码与例按钮的单击事件过程代码与例8.3相同。其余移动记录指针的按钮单击事件过程代相同。其余移动记录指针的按钮单击事件过程代码与例码与例8.3相比,都增加了显示照片的语句:相比,都增加了显示照片的语句:Image1.Picture=LoadPicture(Adodc1.Recordset.Fields(照片照片)运行程序运行程序,当单击各移动按钮时,学生记录改变,照当单击各移动按钮时,学生记录改变,照片也随之改变。片也随之改变。当单击当单击“添加添加”按钮时,所有文本框及图像框清空,按钮时,所有文本框及图像框清空,表示空记录,供用户输入新记录数据,此时表示空记录,供用户输入新记录数据,此时“浏览浏览”按钮可见,按钮可见,单击单击“浏览浏览”按钮,出现按钮,出现“打开文件打开文件”对话框,对话框,用户可在其中选择图片文件,加载到图像框中,用户可在其中选择图片文件,加载到图像框中,单击单击“确定确定”按钮,则新录入的数据及图片文件名按钮,则新录入的数据及图片文件名保存到数据表中。保存到数据表中。628.3.2List控件和控件和Combo控件的应用控件的应用在设计数据录入窗体时,有的字段数据取值范围很在设计数据录入窗体时,有的字段数据取值范围很小,为了录入方便并且保证该字段数据的标准性,小,为了录入方便并且保证该字段数据的标准性,可以使用列表框或组合下拉列表框可以使用列表框或组合下拉列表框为用户提供可选为用户提供可选的输入项的输入项。例如,将例例如,将例8-3中的录入性别字段的文本框中的录入性别字段的文本框Text3删删除,改用除,改用Combo控件,控件的名称用默认名控件,控件的名称用默认名Combo1,并绑定到并绑定到Adodc1(已连接到学生信息表)(已连接到学生信息表)的的性别性别字段,即设置字段,即设置Combo1的属性的属性DataSource为:为:Adodc1DataField为:性别。为:性别。63在窗体的在窗体的Form_Load()事件中,用事件中,用Combo1的的AddItem方法,将方法,将“男男”、“女女”两项添加到两项添加到Combo1中,代码如下:中,代码如下:PrivateSubForm_Load()Combo1.AddItem男男Combo1.AddItem女女EndSub运行界面如图所示。运行界面如图所示。图图8-18用用Combo控件显示或输入性别字段控件显示或输入性别字段648.3.3DataList控件和控件和DataCombo控件的应用控件的应用该两个控件
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!