VB与数据库课件_第1页
VB与数据库课件_第2页
VB与数据库课件_第3页
VB与数据库课件_第4页
VB与数据库课件_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章VB与数据库基本内容:

介绍了VB中Data控件、DBGrid控件、ADOData控件的使用方法。教学要求:

掌握相关控件的属性、方法和事件。重点:

掌握数据控件的使用。第九章VB与数据库基本内容:1 在VB中,可用的数据访问接口有3种:ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据。 为什么在VB中有3种数据访问接口呢?因为数据访问技术总是不断进步,而这3种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它比RDO和DAO更加简单,而且是更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。 ADO控件是VB6.0中文版提供的一个ActiveX控件,与旧版的Data控件相似。 在VB中,可用的数据访问接口有3种:ActiveX数据对象29.1ODBC和数据源

ODBC的全称为OpenDatabaseConnection,即开放式数据库连接,是Microsoft公司在1989年推出的连接外部数据库的标准。ODBC的优点是:·ODBC提供了一个能访问大量数据库的单一接口。·ODBC使客户应用程序的开发可以独立于后端服务器。ODBC由以下部分组成,如图9.1所示。 9.1ODBC和数据源3图9.1ODBC体系结构图9.1ODBC体系结构4·应用程序:是为了访问数据库而开发的前端,它通过ODBC的API来建立与数据库的连接,并使用SQL命令操纵数据库。·数据源:用于描述数据库管理系统、远程操纵系统和网络之间的组合方式,其中远程操作系统和网络并不是必需的。·驱动程序管理器:是应用程序和用户访问一个特定数据库所必需的驱动程序之间的一个中介。·驱动程序:为迁移一个特定的数据库管理系统真正实现ODBCAPI。它建立与服务器的连接,提交SQL查询,然后向应用程序返回结果集或出错信息。 ·应用程序:是为了访问数据库而开发的前端,它通过ODBC的5 一旦有了ODBC驱动程序,就可以创建应用程序需要的数据源。数据源的信息包括用于访问的驱动程序和数据库的名字,还要为数据源提供一个名字,以便在应用程序中引用它。 为了创建一个ODBC数据源,选择WindowsXP系统的“开始”|“设置”|“控制面板”,双击选中“ODBC数据源”出现ODBC数据源管理对话框。 一旦有了ODBC驱动程序,就可以创建应用程序需要的数据源。6 例如,为了建立Access的ODBC数据源,选择不同的DSN类型。单击“添加”,弹出选择数据库驱动程序对话框,从“选定您需要的驱动程序来安装数据库”的列表框中选择“MicrosoftAccessDriver(*.mdb)”,单击“完成”,出现如图9.2所示的对话框。在该对话框中输入数据源名“newstudent”,单击“选取”,选择数据库“E:\vb\student.mdb”。单击“确定”。这时返回ODBC数据源管理对话框,看到新添加的“newstudent”数据源,如图9.3所示。这样以后就可以在应用程序中使用该数据源了。 VB与数据库课件7图9.2“ODBCMicrosoftAccess安装”对话框图9.2“ODBCMicrosoftAccess安装8图9.3“ODBC数据源管理器”窗口图9.3“ODBC数据源管理器”窗口99.2使用数据库管理器 VB提供了一个非常实用的工具程序,即可视化数据管理器(VisualDataManager),使用它可以方便地建立数据库、数据表和数据查询。可以说,凡是有关数据库的操作,都能使用它来完成,并且由于它提供了可视化的操作界面,因此很容易掌握。 图9.4可视数据库管理器9.2使用数据库管理器图9.4可视数据库管理器109.2.1建立一个数据库1.启动数据库管理器 在VB集成环境中,单击“外接程序”菜单下的“可视化数据库管理器”命令,即可打开可视化数据库管理器“VisData”窗口,如图9.4所示。“数据库管理器”窗口由菜单栏、工具栏、子窗口区和状态条组成,启动完成时,其子窗口区为空。2.建立Jet数据库 建立Jet数据库的步骤如下: 9.2.1建立一个数据库11 (1)选择“文件”菜单中的“新建”项,出现一个子菜单,列出如下可选的数据库类型:MicrosoftAccess:MicrosoftAccess(Version2.0或7.0).mdb。Dbase:Dbase(Version5.0,Ⅳ或Ⅱ)数据库。FoxPro:FoxPro(Version3.0,2.6,2.5或2.0)数据库。Paradox:Paradox(Version5.0,4.x或3.x)数据库。ODBC:新的ODBC数据源。TextFiles:存储表文件的目录。 在其中选择一项,如“MicrosoftAccess”。若再出现下级子菜单,则再选一项,如“Version7.0MDB”。VB与数据库课件12 (2)出现创建数据库对话框,在该对话框中选择保存数据库的路径和库文件名,如输入数据库文件名为“student”,保存文件夹为“e:\vb”。 (3)单击“保存”按钮后,在VisData多文档窗口中将出现“数据库窗口”和“SQL语句”两个子窗口。在“数据库窗口”中单击“+”号,将列出新建数据库的常用属性,如图9.5所示。VB与数据库课件13图9.5新建数据库的属性图9.5新建数据库的属性149.2.2添加数据表

利用可视化数据管理器建立数据库后,就可以向该数据库中添加数据表,下面以添加Access表为例介绍添加和建立表的方法。1.建立数据表结构建立数据表结构的步骤如下:(1)打开已经建立的Access数据库,如“student.mdb”.9.2.2添加数据表15(2)用鼠标右键单击数据库窗口,在出现的快捷菜单中选择“新建表”,此时将打开“表结构”对话框。 在“表结构”对话框中,“表名称”必须输入,即数据表必须有一个名字,如“学生表”。“字段列表”显示表中的字段名,通过“添加字段”和“删除字段”按钮进行字段的添加和删除。有索引关键字的可向“索引列表”中添加或删除索引。(3)单击“添加字段”按钮打开“添加字段”对话框。在“名称”文本框中输入一个字段名,在“类型”下拉列表中选择相应的数据类型,在“大小”框中输入字段长度,选择字段是“固定字段”还是“可变字段”,以及“允许零长度”和“必要的”。还可以定义验证规则来对取值进行限制,可以指定插入记录时字段的默认值。 一个字段完成后,单击“确定”按钮,该对话框中的内容将变为空白,可继续添加该表中的其他字段。当所有字段添加完毕后,单击该对话框中的“关闭”按钮,将返回“表结构”对话框。(2)用鼠标右键单击数据库窗口,在出现的快捷菜单中选择“新建16(4)单击“表结构”对话框中的“添加索引”按钮,打开“添加索引”对话框。在“名称”框中输入索引名,每个索引都要有一个名称。在“可用字段”中选择建立索引的字段名。一个索引可以由一个字段建立,也可以用多个字段建立。 如果要使某个字段或几个字段的值不重复,可以建立索引,并使索引为惟一的,否则一定不要选中“惟一的”。(5)建立好“学生表”的表结构,如图9.6所示。在“表结构”对话框中,单击“生成表”按钮生成表,关闭表结构对话框,在数据库窗口中可以看到生成的表。

VB与数据库课件17图9.6“表结构”对话框图9.6“表结构”对话框182.修改数据库结构 在可视化数据管理器中,可以修改数据库中已经建立的数据表的结构。操作如下:(1)打开要修改的数据表的数据库。在数据库窗口中用鼠标右键单击要修改表结构的数据表的表名,出现快捷菜单,如图9.7所示。(2)在快捷菜单中选择“设计”选项,将打开“表结构”。此时的“表结构”对话框与建立表时的对话框不完全相同。在该对话框中可以做的修改工作包括:修改表名称、修改字段名、添加与删除字段、修改索引、添加与删除索引、修改验证和默认值等。单击“打印结构”按钮可打印表结构,单击“关闭”按钮完成修改。

2.修改数据库结构19图9.7“数据库窗口”中的快捷菜单图9.7“数据库窗口”中的快捷菜单209.2.3数据表中数据的编辑1.“数据管理器”的工具栏 可视化数据管理器的工具栏由“记录集类型按钮组”、“数据显示按钮组”和“事务方式按钮组”三部分组成。(1)记录集类型按钮组 记录集类型按钮组为开头的三个按钮,它们的说明如下:表类型记录集:在以这种方式打开数据表中数据时,所进行的增、删、改等操作都将直接更新数据表中的数据。动态集类型记录集:以这种方式可以打开数据表或由查询返回的数据,所进行的增、删、改及查询等操作都先在内存中进行,速度快。快照类型记录集:以这种方式打开的数据表或由查询返回的数据仅供读取而不能更改,适用于进行查询工作。9.2.3数据表中数据的编辑21(2)数据显示按钮组 在记录集类型按钮组的右边三个按钮构成了数据显示按钮组,它们的说明如下:在窗体上使用Data控件:在显示数据表的窗口中使用Data控件来控制记录的滚动。在窗体上不使用Data控件:在显示数据表的窗口中不使用Data控件,而是使用水平滚动条来控制记录的滚动。在窗体上使用DBGrid控件:在显示数据表的窗口中使用DBGrid控件。(3)事务方式按钮组 在数据显示按钮组的右边三个按钮构成了事务方式按钮组,它们的说明如下:开始事务:开始将数据写入内存数据表中。回滚当前事务:取消由“开始事务”的写入操作。提交当前事务:确认数据写入的操作,将数据表数据更新,原有数据将不能恢复。(2)数据显示按钮组222.数据记录的输入、修改与删除 在“数据管理器”的工具栏中选择“表类型记录集”、“在窗体上使用Data控件”和“开始事务”选项,然后在如图9.4所示的快捷菜单中选择“打开”选项,即可打开数据表记录处理窗口,如图9.8所示。 在该窗口中有6个按钮用于记录操作,它们的作用分别为:添加/取消:向表中添加新记录或取消添加的记录。更新:保存窗口中的当前记录。删除:删除窗口中的当前记录。查找:根据指定条件查找满足条件的记录。刷新:用于记录刷新,这仅对多用户应用程序才是需要的。关闭:关闭表处理窗口。2.数据记录的输入、修改与删除23图9.8数据记录处理窗口图9.8数据记录处理窗口249.2.4使用“数据窗体设计器” “数据窗体设计器”可以创建数据窗体,并把它们添加到当前的VB工程中。使用这个工具,不必编写任何代码,就能创建用于浏览、修改和查询数据的应用程序。“数据窗体设计器”菜单项在“实用程序”菜单中,只有打开一个数据库后,该菜单项才有效。数据窗体设计器的使用步骤如下:(1)首先执行“文件”菜单中的“打开数据库”菜单项,打开前面建立的“student.MDB”数据库,这时在“实用程序”菜单中的“数据窗体设计器”菜单项变为可用的。9.2.4使用“数据窗体设计器”25(2)执行“实用程序”菜单中的“数据窗体设计器”菜单项,出现“数据窗体设计器”对话框。在“窗体名称(不带扩展名)”框中输入“stud”,在“记录源”组合框中选择“学生表”,这时“可用的字段”列表框中列出学生表的所有字段,单击“>>”按钮将其全部移到“包括的字段”列表框中。(3)单击“生成窗体”按钮,当所有字段消失后,数据窗体被加入到当前的工程中。(4)单击“关闭”按钮,关闭“数据窗体设计器”对话框。此时在工程中生成的数据窗体如图9.9所示。以“frmstud”文件名保存该窗体。该窗体如图9.9所示。

VB与数据库课件26图9.9自动生成的窗体图9.9自动生成的窗体27 实际上,该窗体是VB自动生成的,其中包括5个标签(分别为对应字段的字段名)、5个文本框(分别用于输入各字段的值)、5个命令按钮(标题分别为“添加”、“删除”、“刷新”、“更新”和“关闭”,对应的命令按钮名字分别是cmdAdd,cmdDelete,cmdRefresh,cmdUpdate和cmdClose)和一个Data控件(名字为Data1,Data控件在下节中介绍)。在这些命令按钮上分别设计以下Click事件过程:

实际上,该窗体是VB自动生成的,其中包括5个标签(分别为对28PrivateSubcmdAdd_Click()Data1.Recordset.AddNewEndSubPrivateSubcmdDelete_Click()'如果删除记录集的最后一条记录'记录或记录集中唯一的记录Data1.Recordset.DeleteData1.Recordset.MoveNextEndSubPrivateSubcmdRefresh_Click()'这仅对多用户应用程序才是需要的Data1.RefreshEndSubPrivateSubcmdUpdate_Click()Data1.UpdateRecordData1.Recordset.Bookmark=Data1.Recordset.LastModifiedEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdAdd_Click()29(5)单击“工程”菜单中的“工程1属性”菜单项,出现“工程属性”对话框。在“启动对象”组合框中选择“frmstud”,然后运行工程。这时窗体如图9.10所示,可以通过命令按钮执行相应的数据表操作。图9.10运行后的数据窗体(5)单击“工程”菜单中的“工程1属性”菜单项,出现“工程属30 我们可以对生成的窗体进行修改,使之更美观,操作更方便,如图9.11所示,是对上面自动生成的窗体进行修改的结果,其中将“性别”文本框和“民族”文本框改为组合框,便于数据输入。图9.11改进后的数据窗体 我们可以对生成的窗体进行修改,使之更美观,操作更方便,如图319.3数据控件的使用9.3.1数据控件常用属性 1.Connect属性 Connect属性指定数据控件所要连接的数据库类型。 VisualBasic6.0提供了7种可访问的数据库类型,VisualBasic可识别的数据库有: 1)MicrosoftAccess的MDB文件(缺省值); 2)BorlanddBASE、MicrosoftFoxpro的DBF文件; 3)BorlandParadox的DB文件;9.3数据控件的使用9.3.1数据控件常用属性 1.Co32 4)NovellBtrieve的DDF文件; 5)MicrosoftExcel的XLS文件; 6)Lotus的WKS文件; 7)OpenDataBaseConnectivity(ODBC)数据库。 2.DatabaseName属性 DatabaseName属性指定具体使用数据库的名称,包括所有的路径名。 如果连接的是单表数据库,则DatabaseName属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource属性中。 如果在“属性”窗口中单击DatabaseName属性右边的按钮,会出现一个公用对话框用于选择相应的数据库。VB与数据库课件33 例如,下面语句设置了可访问的数据库名称: 如果连接一个MicrosoftAccess的数据库C:\职员档案.mdb,则Data1.DatabaseName=”C:\职员档案.mdb”;如果连接一个Foxpro数据库C:\yang\职员档案1.dbf,因为Foxpro数据库只含有一个表,则Data1.DatabaseName=”C:\yang”,RecordSource=”职员档案1.dbf”。 如果未写数据库文件的扩展名,则缺省情况下为使用以.mdb为扩展名的数据库文件。VB与数据库课件34 3)RecordSource属性 RecordSource属性确定具体可访问的数据,这些数据构成记录集对象Recordset。 4)RecordsetType属性 RecordsetType属性确定记录集类型。 5)ReadOnly属性 在对数据库只查看不修改时,通常将ReadOnly属性设置为True,而在运行时根据一定的条件,响应一定的指令后,才将它设置为False。 6)Exclusive属性 Exclusive属性值设置为True时,则在通过关闭数据库撤消这个设置前,其他任何人不能对数据库访问。这个属性的缺省值是False。 3)RecordSource属性359.3.2数据绑定控件常用属性 要使文本等控件与数据控件捆绑在一起,成为数据控件的绑定控件。并且能够受到数据库约束,必须在运行时对这些控件的两个属性进行设置: 1)DataSource属性 DataSource属性用来将一个有效的数据控件与一个数据库连接。 2)DataField属性 DataField属性设置数据库有效的字段与绑定控件建立联系。图9.12绑定控件、数据控件和数据库三者的关系9.3.2数据绑定控件常用属性 要使文本等控件与数据控件捆绑369.3.3使用数据控件操作数据库中的数据对

象属

性设

置dataNameDatabasenameConnectRecordsetsourceData1E:\VB书\student.mdbaccessstudentTextBoxNamedatafielddatasourcetext1学号data1TextBoxNamedatafielddatasourcetext2姓名data1TextBoxNamedatafielddatasourcetext3性别data1TextBoxNamedatafielddatasourcetext4出生年月data1表9.1窗体属性表 例9.1、设计一窗体,在窗体内通过文本框等绑定控件显示学生情况表内的记录。9.3.3使用数据控件操作数据库中的数据对象属性设37 不需编写任何代码,就可浏览表中的内容。单击运行按钮就可出现如图9.13所示4个文本框分别显示学号,姓名,性别,和出生年月的内容。图9.13学生情况表显示界面 不需编写任何代码,就可浏览表中的内容。单击运行按钮就可出现38 使用数据控件对象的4个箭头可遍历整个记录集中的记录。 通过DBList控件和DBCombo控件浏览学生情况表内的记录时,DBList控件和DBCombo控件不是VisualBasic工具箱内的默认控件,需要在开发环境中选择“工程”|“部件”菜单命令,并在随即出现的对话框中选择MicrosoftDataBoundListControls选项,将它们添加到工具箱中。 使用数据控件对象的4个箭头可遍历整个记录集中的记录。39例9.2:设计一个窗体,通过数据网格控件浏览学生情况表内的记录。参见图9.14所示。 使用DATA数据控件时可使用MsflexGrid网格控件或VB5.0提供的数据网格控件DBGrid。MsflexGrid控件与DBGrid控件都不是VisualBasic工具箱内的默认控件,需要在开发环境中选择“工程”主菜单中的“添加部件”命令,并在随即出现的对话框中选择MicrosoftFlexGridControl6.0或MicrosoftDataBoundControl5.0,将其添加到工具箱中。例9.2:设计一个窗体,通过数据网格控件浏览学生情况表内的记40对

置DataNamedata1Data1.Caption学生信息DatabasenameD:\Vb书\student.mdbRecordsource学生情况图9.14通过数据网格控件浏览学生情况表表9.2窗体属性表对象属性41 数据控件是依靠数据对象来获取对数据访问的,与其相关的数据对象有: 1Database对象 Database对象是物理数据库的逻辑表示。数据控件通过DatabaseName属性连接到一个具体的数据库,并通过它的Database对象表现出来。 除了数据控件获取Database对象之外,还可以在程序中定义Database对象,并通过OpenDatabase()函数实现对物理数据库的连接;或者将数据控件的Database对象传递给被定义的Database对象。9.3.4数据控件上的对象 数据控件是依靠数据对象来获取对数据访问的,与其相关的数据对42 例如以下语句: DimDs1AsDatabase‘定义数据对象 DimDs2AsDatabase SetDs1=OpenDatabase(“e:\VB\class.mdb)‘使Ds1获取物理数据库 SetDs2=Me.data1.Database‘将数据控件的Database对象传递给Ds2 例如以下语句:43 2Recordset对象 Recordset对象代表一组与数据库相关的逻辑记录集合。它所对应的数据来源可以是数据表,也可以是和SQL语言中查询语句(SELECT)有关的查询结果。 Recordset对象有三种类型:

Table类型:记录集为表集,可以显示、添加、删除和修改,具有较好的更新性能。 Dynaset类型:记录集为动态集,可以显示、添加、删除和修改,并具有较大的操作灵活性。 Snapshot类型:记录集为快照集,只能显示,具有较好的显示速度。 2Recordset对象44 除了Data控件获取Recordset对象之外,还可以在程序中定义Recordset对象,并通过函数获得数据。 DimDsAsDatabase‘定义数据对象 DimRsAsRecorderset‘定义记录对象 SetDs=OpenDatabase(“e:\VB|class.mdb)‘使Ds获取物理数据库 SetRs=Me.data1.Database.OpenRecordset(“SElECT*FROM学生情况”,dbOpenDynaset)‘以动态集方式打开从“学生情况”数据表取得的SQL查询,传给Rs对象 SetMe.data1.Recorderset=.Rs 除了Data控件获取Recordset对象之外,还可以在程459.3.5数据控件的常用方法 1Refresh方法 如果在设计状态没有为打开数据控件的有关属性全部赋值,或当RecordSource在运行时被改变后,必须使用激活数据控件的Refresh方法激活这些变化。 2UpdateCountrols方法 UpdateCountrols方法可以将数据从数据库中重新读到被数据控件绑定的控件内。使用UpdateCountrols方法终止用户对绑定内控件的修改。 3UpdateRecord方法 当对绑定内的控件修改后,数据控件需要移动记录集的指针才能保存修改,如果使用UpdateRecord方法可强制数据控件将绑定控件内的数据写入到数据库中而不再触发Validate事件。在代码中用该方法修改。9.3.5数据控件的常用方法 1Refresh方法469.3.6数据控件的事件 1Reposition事件 Reposition事件发生在一条记录成为当前记录后。只要改变记录集的指针使其从一条记录移到另一条记录。会产生Reposition事件,可以在该事件过程中建立程序,可反映出记录位置、记录总数等。 2Validate事件 当要移动记录指针前,修改与删除记录前或卸载含有数据控件的窗体时触发Validate事件。Validate事件检查被数据控件绑定的控件内的数据是否发生变化。它通过save参数(True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。Action参数可为表9.3中的值:9.3.6数据控件的事件 1Reposition事件47表9.3Validate事件的Action参数表Action值描述0取消对数据控件的操作1MoveFirst2MovePrevious3MoveNext4MoveLast5Addnew6Updata7Delete8Find9设置BookMark10Close11卸载窗体表9.3Validate事件的Action参数表Actio48 对记录的操作能够通过Recordset对象的方法实现。其常用方法有: 1)AddNew方法 加入一条新记录到记录集内存缓冲区。 例如:Rs.AddNew 2)Edit方法 允许对当前记录进行修改。 3)Delete方法 用于删除当前记录。4)Update方法把内存缓冲区的内容写进数据库文件,保存对数据库所作的改动。9.3.7数据库记录的增删改操作 对记录的操作能够通过Recordset对象的方法实现。其常49 5)Close方法 关闭记录集和数据库。该方法也能用在数据库对象上,将数据库关闭。 Rs.Close'关闭记录集 Ds.Close‘关闭数据库6)Move方法使用Move方法可代替对数据库控件对象的4个箭头的操作遍历整个记录几种的记录。5种Move方法是: (1)MoveFirst方法移至第一条记录 (2)MoveLast方法移至最后一条记录 (3)MoveNext方法移至下一条记录 (4)MovePrevious方法移至上一条记录 (5)Move[n]方法向前或向后移动n条记录,n为指定的数值。 5)Close方法50 例9.3:在窗体上用4个命令按钮代替例9.1数据控件对象的4个箭头的操作。 窗体属性设置如下:在窗体上增加4个命令按钮,将数据控件的Visible属性设置为False.。通过对4个按钮的编程代替数据控件的4个箭头。窗体如图9.15所示。图9.15用按钮代替数据控件 例9.3:在窗体上用4个命令按钮代替例9.1数据控件对象的51上一条和下一条按钮的代码需要考虑Recordset对象的边界,可用Bof和Eof属性检测记录集的首尾,如越界,则用指令定位到第一条或最后一条记录。程序代码如下:PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand2_Click()Data1.Recordset.MovePreviousIfData1.Recordset.BOFThen Data1.Recordset.MoveFirstEndSub上一条和下一条按钮的代码需要考虑Recordset对象的边界52PrivateSubCommand3_Click()Data1.Recordset.MoveNextIfData1.Recordset.EOFThen Data1.Recordset.MoveLastEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand3_Click()539.4ADOData控件 ADOData控件(有时简称为ADO控件)与VB固有的Data控件相似。使用ADOData控件,可以利用MicrosoftActiveXDataObjects(ADO)快速建立数据绑定控件和数据提供者之间的连接。 ADOData控件可以实现以下功能:·连接一个本地数据库或远程数据库。·打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、存储过程或该数据库中的表的视图的记录集合。·将数据字段的数值传递给数据绑定控件,可以在这些控件中显示或更改这些数值。·添加新的记录,或根据更改显示在绑定的控件中的数据来更新一个数据库。9.4ADOData控件54

要使用ADOData控件,单击“工程”菜单上的“部件”选项,并在“部件”对话框中选择“MicrosoftADODataControl6.0”,如图9.18所示。单击“确定”按钮,就可以在VB中的控件工具箱内看见它。通过数据控件可以直接对记录集进行访问,移动记录指针,不需要编写代码即可实现对数据库的操作。图9.16“工程”菜单的“部件”对话框 要使用ADOData控件,单击“工程”菜单上的“部件”选559.4.1ADOData控件的属性ADOData控件的常用属性如下:1.Align属性用来把数据控件摆放在窗体的特定位置,有5个可选的位置。·vbAlignNone可以用鼠标指针拖动控件到窗口的任何位置。·vbAlignTop将控件放到窗口的顶端。·vbAlignBottom将控件放到窗口的底部。·vbAlignLeft将控件放到窗口的最左边。·vbAlignRight将控件放到窗口的最右边。9.4.1ADOData控件的属性562.BOFAction和EOFAction属性 当移动数据库记录指针时,如果记录指针移动到BOF或EOF位置后,再向前或向后移动记录指针将发生错误。 BOFAction和EOFAction属性指定当发生上述错误时,数据控件采取什么样的操作。BOFAction属性有两个可选常量:·adDoMoveFirst:移动记录指针到第一个记录。·adStayBOF:移动记录指针到记录的开始。记录指针移动到记录的开始位置时将引发数据控件的Validate事件和Reposition事件,这时可编写程序代码确定要执行的操作。

2.BOFAction和EOFAction属性57 EOFAction属性有三个可选常量:·adDoMoveLast:移动记录指针到最后一个记录。·adStayEOF:移动记录指针到记录的结尾,同样可利用它所引发的事件编写程序代码。·adDoAddNew:当记录指针移动到文件尾部时,引发数据控件的Validate事件,然后自动执行AddNew方法添加新记录,并在新记录上引发Reposition事件。VB与数据库课件583.ConnectionString属性 ConnectionString属性用来建立到数据源的连接的信息。由于VB的ADO对象模型可以链接不同类型的数据库,所以在使用ADOData控件时也能够通过ConnectionString属性来设置要链接的数据库。在设计时,可以首先将ConnectionString属性设置为一个有效的连接字符串,也可以将ConnectionString属性设置为定义连接的文件名。该文件是由“数据链接”对话框产生的。设置ConnectionString属性的步骤如下:(1)单击ADOData控件,并在“属性”窗口中单击ConnectionString属性的“...”按钮,出现如图9.17所示的“属性页”对话框。

3.ConnectionString属性59图9.17“属性页”对话框图9.17“属性页”对话框60(2)如果已经创建了一个Microsoft数据链接文件(.UDL),选择“使用DataLink文件”单选按钮,并单击“浏览”按钮,以找到计算机上的文件。(3)如果使用DSN,则单击“使用ODBC数据源名”连接,并从框中选择一个DSN,或单击“新建”按钮创建一个。(4)如果想创建一个连接字符串,选择“使用连接字符串”单选按钮,单击“生成”按钮,然后在如图9.18所示的“数据链接属性”对话框创建一个连接。(2)如果已经创建了一个Microsoft数据链接文件(.U61图9.18“数据链接属性”的“连接”选项卡图9.18“数据链接属性”的“连接”选项卡62(5)在创建连接字符串后,单击“确定”按钮。ConnectionString属性将使用一个类似于下面一行的字符串来填充:drive=[SQLServer];server=bigsmile;uid=sa;pwd=pwd;database=pubs 在运行时,可以动态地设置ConnectionString更改数据库。4.RecordSource属性 RecordSource属性设置要链接的表或者SQL查询语句。可以在“属性”窗口中将“记录源”属性设置为一个SQL语句。例如:SELECT*FROMstudentWHEREsex="男"(5)在创建连接字符串后,单击“确定”按钮。Connecti635.CommandType属性 CommandType属性用于指定RecordSource属性的取值类型。可直接在属性窗口中CommandType属性框右边的下拉列表中选择需要的类型,其取值如下:·adCmdUnknown:默认值。CommandText属性中的命令类型未知。·adCmdTable:将CommandText作为其列全部由内部生成的SQL查询返回的表格的名称进行计算。·adCmdText:将CommandText作为命令或存储过程调用的文本化定义进行计算。·adCmdStoreProc:将CommandText作为存储过程名进行计算。5.CommandType属性646.UserName属性 UserName属性指定用户的名称,当数据库受密码保护时,需要指定该属性。该属性可以在ConnectionString中指定。如果同时提供一个ConnectionString属性以及一个UserName属性,则ConnectionString中的值将覆盖UserName属性的值。7.Password属性 Password属性指定密码,在访问一个受保护的数据库时指定密码是必需的。和Provider属性与UserName属性类似,如果在ConnectionString属性中指定了密码,则将覆盖在该属性中指定的值。8.ConnectionTimeout属性 该属性设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。6.UserName属性659.4.2ADOData控件的方法ADOData控件的常用方法如下:1.UpdateControls方法 该方法用于更新绑定控件的内容。绑定控件是通过设置控件的DataSource属性和DataField属性,从而将该控件与ADOData控件的某个字段绑定到一起的。使用绑定控件,可以让该控件的内容自动更新,取回记录集当前记录的内容或者将更新的内容保存到记录集中。2.AddNew方法 用于在ADOData控件的记录集中添加一条新记录。其使用语法如下:Adodc1.Recordset.AddNew 其中Adodc1是一个ADOData控件的名字。在添加语句之后,应该给相应的各个字段赋值,然后调用UpdateBatch方法保存记录,或者调用CancelUpdate方法取消保存。9.4.2ADOData控件的方法663.Delete方法 用于在ADOData控件的记录集中删除当前记录。其使用语法如下:Adodc1.Recordset.Delete4.MoveFirst,MoveLast,MoveNext和MovePrevious方法 用于在ADOData控件的记录集中移动记录。MoveFirst,MoveLast,MoveNext和MovePrevious方法分别移到第一个记录、最后一个记录、下一个记录和上一个记录。其使用语法如下:Adodc1.Recordset.MoveFirstAdodc1.Recordset.MoveLastAdodc1.Recordset.MoveNextAdodc1.Recordset.MovePreviousVB与数据库课件675.CancelUpdate方法 用于取消ADOData控件的记录集中添加或编辑操作,恢复修改前的状态。其使用语法如下:Adodc1.Recordset.CancelUpdate6.UpdateBatch方法 用于保存ADOData控件的记录集中添加或编辑操作。其使用语法如下:Adodc1.Recordset.UpdateBatch5.CancelUpdate方法689.4.3ADOData控件的事件ADOData控件的常用事件如下:1.WillMove和MoveComplete事件 WillMove事件在当前记录的位置即将发生变化时触发,如使用ADOData控件上的按钮移动记录位置时。WillComplete事件在位置改变完成时触发。2.WillChangeField和FieldChangeComplete事件 WillChangeField事件是当前记录集中当前记录的一个或多个字段发生变化时触发。而FieldChangeComplete事件则是当字段的值发生变化后触发。3.WillChangeRecord和RecordChangeComplete事件 WillChangeRecord事件是当记录集中的一个或多个记录发生变化前产生的。而RecordChangeComplete事件则是当记录已经完成后触发。9.4.3ADOData控件的事件69作业:1在VB中可以访问哪些类型的数据库?2利用Data控件说明如何将一个表中的字段绑定到一个文本框中?3简述将ADO控件连接到数据源的步骤。作业:70第九章VB与数据库基本内容:

介绍了VB中Data控件、DBGrid控件、ADOData控件的使用方法。教学要求:

掌握相关控件的属性、方法和事件。重点:

掌握数据控件的使用。第九章VB与数据库基本内容:71 在VB中,可用的数据访问接口有3种:ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据。 为什么在VB中有3种数据访问接口呢?因为数据访问技术总是不断进步,而这3种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它比RDO和DAO更加简单,而且是更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。 ADO控件是VB6.0中文版提供的一个ActiveX控件,与旧版的Data控件相似。 在VB中,可用的数据访问接口有3种:ActiveX数据对象729.1ODBC和数据源

ODBC的全称为OpenDatabaseConnection,即开放式数据库连接,是Microsoft公司在1989年推出的连接外部数据库的标准。ODBC的优点是:·ODBC提供了一个能访问大量数据库的单一接口。·ODBC使客户应用程序的开发可以独立于后端服务器。ODBC由以下部分组成,如图9.1所示。 9.1ODBC和数据源73图9.1ODBC体系结构图9.1ODBC体系结构74·应用程序:是为了访问数据库而开发的前端,它通过ODBC的API来建立与数据库的连接,并使用SQL命令操纵数据库。·数据源:用于描述数据库管理系统、远程操纵系统和网络之间的组合方式,其中远程操作系统和网络并不是必需的。·驱动程序管理器:是应用程序和用户访问一个特定数据库所必需的驱动程序之间的一个中介。·驱动程序:为迁移一个特定的数据库管理系统真正实现ODBCAPI。它建立与服务器的连接,提交SQL查询,然后向应用程序返回结果集或出错信息。 ·应用程序:是为了访问数据库而开发的前端,它通过ODBC的75 一旦有了ODBC驱动程序,就可以创建应用程序需要的数据源。数据源的信息包括用于访问的驱动程序和数据库的名字,还要为数据源提供一个名字,以便在应用程序中引用它。 为了创建一个ODBC数据源,选择WindowsXP系统的“开始”|“设置”|“控制面板”,双击选中“ODBC数据源”出现ODBC数据源管理对话框。 一旦有了ODBC驱动程序,就可以创建应用程序需要的数据源。76 例如,为了建立Access的ODBC数据源,选择不同的DSN类型。单击“添加”,弹出选择数据库驱动程序对话框,从“选定您需要的驱动程序来安装数据库”的列表框中选择“MicrosoftAccessDriver(*.mdb)”,单击“完成”,出现如图9.2所示的对话框。在该对话框中输入数据源名“newstudent”,单击“选取”,选择数据库“E:\vb\student.mdb”。单击“确定”。这时返回ODBC数据源管理对话框,看到新添加的“newstudent”数据源,如图9.3所示。这样以后就可以在应用程序中使用该数据源了。 VB与数据库课件77图9.2“ODBCMicrosoftAccess安装”对话框图9.2“ODBCMicrosoftAccess安装78图9.3“ODBC数据源管理器”窗口图9.3“ODBC数据源管理器”窗口799.2使用数据库管理器 VB提供了一个非常实用的工具程序,即可视化数据管理器(VisualDataManager),使用它可以方便地建立数据库、数据表和数据查询。可以说,凡是有关数据库的操作,都能使用它来完成,并且由于它提供了可视化的操作界面,因此很容易掌握。 图9.4可视数据库管理器9.2使用数据库管理器图9.4可视数据库管理器809.2.1建立一个数据库1.启动数据库管理器 在VB集成环境中,单击“外接程序”菜单下的“可视化数据库管理器”命令,即可打开可视化数据库管理器“VisData”窗口,如图9.4所示。“数据库管理器”窗口由菜单栏、工具栏、子窗口区和状态条组成,启动完成时,其子窗口区为空。2.建立Jet数据库 建立Jet数据库的步骤如下: 9.2.1建立一个数据库81 (1)选择“文件”菜单中的“新建”项,出现一个子菜单,列出如下可选的数据库类型:MicrosoftAccess:MicrosoftAccess(Version2.0或7.0).mdb。Dbase:Dbase(Version5.0,Ⅳ或Ⅱ)数据库。FoxPro:FoxPro(Version3.0,2.6,2.5或2.0)数据库。Paradox:Paradox(Version5.0,4.x或3.x)数据库。ODBC:新的ODBC数据源。TextFiles:存储表文件的目录。 在其中选择一项,如“MicrosoftAccess”。若再出现下级子菜单,则再选一项,如“Version7.0MDB”。VB与数据库课件82 (2)出现创建数据库对话框,在该对话框中选择保存数据库的路径和库文件名,如输入数据库文件名为“student”,保存文件夹为“e:\vb”。 (3)单击“保存”按钮后,在VisData多文档窗口中将出现“数据库窗口”和“SQL语句”两个子窗口。在“数据库窗口”中单击“+”号,将列出新建数据库的常用属性,如图9.5所示。VB与数据库课件83图9.5新建数据库的属性图9.5新建数据库的属性849.2.2添加数据表

利用可视化数据管理器建立数据库后,就可以向该数据库中添加数据表,下面以添加Access表为例介绍添加和建立表的方法。1.建立数据表结构建立数据表结构的步骤如下:(1)打开已经建立的Access数据库,如“student.mdb”.9.2.2添加数据表85(2)用鼠标右键单击数据库窗口,在出现的快捷菜单中选择“新建表”,此时将打开“表结构”对话框。 在“表结构”对话框中,“表名称”必须输入,即数据表必须有一个名字,如“学生表”。“字段列表”显示表中的字段名,通过“添加字段”和“删除字段”按钮进行字段的添加和删除。有索引关键字的可向“索引列表”中添加或删除索引。(3)单击“添加字段”按钮打开“添加字段”对话框。在“名称”文本框中输入一个字段名,在“类型”下拉列表中选择相应的数据类型,在“大小”框中输入字段长度,选择字段是“固定字段”还是“可变字段”,以及“允许零长度”和“必要的”。还可以定义验证规则来对取值进行限制,可以指定插入记录时字段的默认值。 一个字段完成后,单击“确定”按钮,该对话框中的内容将变为空白,可继续添加该表中的其他字段。当所有字段添加完毕后,单击该对话框中的“关闭”按钮,将返回“表结构”对话框。(2)用鼠标右键单击数据库窗口,在出现的快捷菜单中选择“新建86(4)单击“表结构”对话框中的“添加索引”按钮,打开“添加索引”对话框。在“名称”框中输入索引名,每个索引都要有一个名称。在“可用字段”中选择建立索引的字段名。一个索引可以由一个字段建立,也可以用多个字段建立。 如果要使某个字段或几个字段的值不重复,可以建立索引,并使索引为惟一的,否则一定不要选中“惟一的”。(5)建立好“学生表”的表结构,如图9.6所示。在“表结构”对话框中,单击“生成表”按钮生成表,关闭表结构对话框,在数据库窗口中可以看到生成的表。

VB与数据库课件87图9.6“表结构”对话框图9.6“表结构”对话框882.修改数据库结构 在可视化数据管理器中,可以修改数据库中已经建立的数据表的结构。操作如下:(1)打开要修改的数据表的数据库。在数据库窗口中用鼠标右键单击要修改表结构的数据表的表名,出现快捷菜单,如图9.7所示。(2)在快捷菜单中选择“设计”选项,将打开“表结构”。此时的“表结构”对话框与建立表时的对话框不完全相同。在该对话框中可以做的修改工作包括:修改表名称、修改字段名、添加与删除字段、修改索引、添加与删除索引、修改验证和默认值等。单击“打印结构”按钮可打印表结构,单击“关闭”按钮完成修改。

2.修改数据库结构89图9.7“数据库窗口”中的快捷菜单图9.7“数据库窗口”中的快捷菜单909.2.3数据表中数据的编辑1.“数据管理器”的工具栏 可视化数据管理器的工具栏由“记录集类型按钮组”、“数据显示按钮组”和“事务方式按钮组”三部分组成。(1)记录集类型按钮组 记录集类型按钮组为开头的三个按钮,它们的说明如下:表类型记录集:在以这种方式打开数据表中数据时,所进行的增、删、改等操作都将直接更新数据表中的数据。动态集类型记录集:以这种方式可以打开数据表或由查询返回的数据,所进行的增、删、改及查询等操作都先在内存中进行,速度快。快照类型记录集:以这种方式打开的数据表或由查询返回的数据仅供读取而不能更改,适用于进行查询工作。9.2.3数据表中数据的编辑91(2)数据显示按钮组 在记录集类型按钮组的右边三个按钮构成了数据显示按钮组,它们的说明如下:在窗体上使用Data控件:在显示数据表的窗口中使用Data控件来控制记录的滚动。在窗体上不使用Data控件:在显示数据表的窗口中不使用Data控件,而是使用水平滚动条来控制记录的滚动。在窗体上使用DBGrid控件:在显示数据表的窗口中使用DBGrid控件。(3)事务方式按钮组 在数据显示按钮组的右边三个按钮构成了事务方式按钮组,它们的说明如下:开始事务:开始将数据写入内存数据表中。回滚当前事务:取消由“开始事务”的写入操作。提交当前事务:确认数据写入的操作,将数据表数据更新,原有数据将不能恢复。(2)数据显示按钮组922.数据记录的输入、修改与删除 在“数据管理器”的工具栏中选择“表类型记录集”、“在窗体上使用Data控件”和“开始事务”选项,然后在如图9.4所示的快捷菜单中选择“打开”选项,即可打开数据表记录处理窗口,如图9.8所示。 在该窗口中有6个按钮用于记录操作,它们的作用分别为:添加/取消:向表中添加新记录或取消添加的记录。更新:保存窗口中的当前记录。删除:删除窗口中的当前记录。查找:根据指定条件查找满足条件的记录。刷新:用于记录刷新,这仅对多用户应用程序才是需要的。关闭:关闭表处理窗口。2.数据记录的输入、修改与删除93图9.8数据记录处理窗口图9.8数据记录处理窗口949.2.4使用“数据窗体设计器” “数据窗体设计器”可以创建数据窗体,并把它们添加到当前的VB工程中。使用这个工具,不必编写任何代码,就能创建用于浏览、修改和查询数据的应用程序。“数据窗体设计器”菜单项在“实用程序”菜单中,只有打开一个数据库后,该菜单项才有效。数据窗体设计器的使用步骤如下:(1)首先执行“文件”菜单中的“打开数据库”菜单项,打开前面建立的“student.MDB”数据库,这时在“实用程序”菜单中的“数据窗体设计器”菜单项变为可用的。9.2.4使用“数据窗体设计器”95(2)执行“实用程序”菜单中的“数据窗体设计器”菜单项,出现“数据窗体设计器”对话框。在“窗体名称(不带扩展名)”框中输入“stud”,在“记录源”组合框中选择“学生表”,这时“可用的字段”列表框中列出学生表的所有字段,单击“>>”按钮将其全部移到“包括的字段”列表框中。(3)单击“生成窗体”按钮,当所有字段消失后,数据窗体被加入到当前的工程中。(4)单击“关闭”按钮,关闭“数据窗体设计器”对话框。此时在工程中生成的数据窗体如图9.9所示。以“frmstud”文件名保存该窗体。该窗体如图9.9所示。

VB与数据库课件96图9.9自动生成的窗体图9.9自动生成的窗体97 实际上,该窗体是VB自动生成的,其中包括5个标签(分别为对应字段的字段名)、5个文本框(分别用于输入各字段的值)、5个命令按钮(标题分别为“添加”、“删除”、“刷新”、“更新”和“关闭”,对应的命令按钮名字分别是cmdAdd,cmdDelete,cmdRefresh,cmdUpdate和cmdClose)和一个Data控件(名字为Data1,Data控件在下节中介绍)。在这些命令按钮上分别设计以下Click事件过程:

实际上,该窗体是VB自动生成的,其中包括5个标签(分别为对98PrivateSubcmdAdd_Click()Data1.Recordset.AddNewEndSubPrivateSubcmdDelete_Click()'如果删除记录集的最后一条记录'记录或记录集中唯一的记录Data1.Recordset.DeleteData1.Recordset.MoveNextEndSubPrivateSubcmdRefresh_Click()'这仅对多用户应用程序才是需要的Data1.RefreshEndSubPrivateSubcmdUpdate_Click()Data1.UpdateRecordData1.Recordset.Bookmark=Data1.Recordset.LastModifiedEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdAdd_Click()99(5)单击“工程”菜单中的“工程1属性”菜单项,出现“工程属性”对话框。在“启动对象”组合框中选择“frmstud”,然后运行工程。这时窗体如图9.10所示,可以通过命令按钮执行相应的数据表操作。图9.10运行后的数据窗体(5)单击“工程”菜单中的“工程1属性”菜单项,出现“工程属100 我们可以对生成的窗体进行修改,使之更美观,操作更方便,如图9.11所示,是对上面自动生成的窗体进行修改的结果,其中将“性别”文本框和“民族”文本框改为组合框,便于数据输入。图9.11改进后的数据窗体 我们可以对生成的窗体进行修改,使之更美观,操作更方便,如图1019.3数据控件的使用9.3.1数据控件常用属性 1.Connect属性 Connect属性指定数据控件所要连接的数据库类型。 VisualBasic6.0提供了7种可访问的数据库类型,VisualBasic可识别的数据库有: 1)MicrosoftAccess的MDB文件(缺省值); 2)BorlanddBASE、MicrosoftFoxpro的DBF文件; 3)BorlandParadox的DB文件;9.3数据控件的使用9.3.1数据控件常用属性 1.Co102 4)NovellBtrieve的DDF文件; 5)MicrosoftExcel的XLS文件; 6)Lotus的WKS文件; 7)OpenDataBaseConnectivity(ODBC)数据库。 2.DatabaseName属性 DatabaseName属性指定具体使用数据库的名称,包括所有的路径名。 如果连接的是单表数据库,则DatabaseName属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource属性中。 如果在“属性”窗口中单击DatabaseName属性右边的按钮,会出现一个公用对话框用于选择相应的数据库。VB与数据库课件103 例如,下面语句设置了可访问的数据库名称: 如果连接一个MicrosoftAccess的数据库C:\职员档案.mdb,则Data1.DatabaseName=”C:\职员档案.mdb”;如果连接一个Foxpro数据库C:\yang\职员档案1.dbf,因为Foxpro数据库只含有一个表,则Data1.DatabaseName=”C:\yang”,RecordSource=”职员档案1.dbf”。 如果未写数据库文件的扩展名,则缺省情况下为使用以.mdb为扩展名的数据库文件。VB与数据库课件104 3)RecordSource属性 RecordSource属性确定具体可访问的数据,这些数据构成记录集对象Recordset。 4)RecordsetType属性 RecordsetType属性确定记录集类型。 5)ReadOnly属性 在对数据库只查看不修改时,通常将ReadOnly属性设置为True,而在运行时根据一定的条件,响应一定的指令后,才将它设置为False。 6)Exclusive属性 Exclusive属性值设置为True时,则在通过关闭数据库撤消这个设置前,其他任何人不能对数据库访问。这个属性的缺省值是False。 3)RecordSource属性1059.3.2数据绑定控件常用属性 要使文本等控件与数据控件捆绑在一起,成为数据控件的绑定控件。并且能够受到数据库约束,必须在运行时对这些控件的两个属性进行设置: 1)DataSource属性 DataSource属性用来将一个有效的数据控件与一个数据库连接。 2)DataField属性 DataField属性设置数据库有效的字段与绑定控件建立联系。图9.12绑定控件、数据控件和数据库三者的关系9.3.2数据绑定控件常用属性 要使文本等控件与数据控件捆绑1069.3.3使用数据控件操作数据库中的数据对

象属

性设

置dataNameDatabasenameConnectRecordsetsourceData1E:\VB书\student.mdbaccessstudentTextBoxNamedatafielddatasourcetext1学号data1TextBoxNamedatafielddatasourcetext2姓名data1TextBoxNamedatafielddatasourcetext3性别data1TextBoxNamedatafielddatasourcetext4出生年月data1表9.1窗体属性表 例9.1、设计一窗体,在窗体内通过文本框等绑定控件显示学生情况表内的记录。9.3.3使用数据控件操作数据库中的数据对象属性设107 不需编写任何代码,就可浏览表中的内容。单击运行按钮就可出现如图9.13所示4个文本框分别显示学号,姓名,性别,和出生年月的内容。图9.13学生情况表显示界面 不需编写任何代码,就可浏览表中的内容。单击运行按钮就可出现108 使用数据控件对象的4个箭头可遍历整个记录集中的记录。 通过DBList控件和DBCombo控件浏览学生情况表内的记录时,DBList控件和DBCombo控件不是VisualBasic工具箱内的默认控件,需要在开发环境中选择“工程”|“部件”菜单命令,并在随即出现的对话框中选择MicrosoftDataBoundListControls选项,将它们添加到工具箱中。 使用数据控件对象的4个箭头可遍历整个记录集中的记录。109例9.2:设计一个窗体,通过数据网格控件浏览学生情况表内的记录。参见图9.14所示。 使用DATA数据控件时可使用MsflexGrid网格控件或VB5.0提供的数据网格控件DBGrid。MsflexGrid控件与DBGrid控件都不是VisualBasic工具箱内的默认控件,需要在开发环境中选择“工程”主菜单中的“添加部件”命令,并在随即出现的对话框中选择MicrosoftFlexGridControl6.0或MicrosoftDataBoundControl5.0,将其添加到工具箱中。例9.2:设计一个窗体,通过数据网格控件浏览学生情况表内的记110对

置DataNamedata1Data1.Caption学生信息DatabasenameD:\Vb书\student.mdbRecordsource学生情况图9.14通过数据网格控件浏览学生情况表表9.2窗体属性表对象属性111 数据控件是依靠数据对象来获取对数据访问的,与其相关的数据对象有: 1Database对象 Database对象是物理数据库的逻辑表示。数据控件通过DatabaseName属性连接到一个具体的数据库,并通过它的Database对象表现出来。 除了数据控件获取Database对象之外,还可以在程序中定义Database对象,并通过OpenDatabase()函数实现对物理数据库的连接;或者将数据控件的Database对象传递给被定义的Database对象。9.3.4数据控件上的对象 数据控件是依靠数据对象来获取对数据访问的,与其相关的数据对112 例如以下语句: DimDs1AsDatabase‘定义数据对象 DimDs2AsDatabase SetDs1=OpenDatabase(“e:\VB\class.mdb)‘使Ds1获取物理数据库 SetDs2=Me.data1.Database‘将数据控件的Database对象传递给Ds2 例如以下语句:113 2Recordset对象 Recordset对象代表一组与数据库相关的逻辑记录集合。它所对应的数据来源可以是数据表,也可以是和SQL语言中查询语句(SELECT)有关的查询结果。 Recordset对象有三种类型:

Table类型:记录集为表集,可以显示、添加、删除和修改,具有较好的更新性能。 Dynaset类型:记录集为动态集,可以显示、添加、删除和修改,并具有较大的操作灵活性。 Snapshot类型:记录集为快照集,只能显示,具有较好的显示速度。 2Recordset对象114 除了Data控件获取Recordset对象之外,还可以在程序中定义Recordset对象,并通过函数获得数据。 DimDsAsDatabase‘定义数据对象 DimRsAsRecorderset‘定义记录对象 SetDs=OpenDatabase(“e:\VB|class.mdb)‘使Ds获取物理数据库 SetRs=Me.data1.Database.OpenRecordset(“SElECT*FROM学生情况”,dbOpenDynaset)‘以动态集方式打开从“学生情况”数据表取得的SQL查询,传给Rs对象 SetMe.data1.Recorderset=.Rs 除了Data控件获取Recordset对象之外,还可以在程1159.3.5数据控件的常用方法 1Refresh方法 如果在设计状态没有为打开数据控件的有关属性全部赋值,或当RecordSource在运行时被改变后,必须使用激活数据控件的Refresh方法激活这些变化。 2UpdateCountrols方法 UpdateCountrols方法可以将数据从数据库中重新读到被数据控件绑定的控件内。使用UpdateCountrols方法终止用户对绑定内控件的修改。 3UpdateRecord方法 当对绑定内的控件修改后,数据控件需要移动记录集的指针才能保存修改,如果使用UpdateRecord方法可强制数据控件将绑定控件内的数据写入到数据库中而不再触发Validate事件。在代码中用该方法修改。9.3.5数据控件的常用方法 1Refresh方法1169.3.6数据控件的事件 1Reposition事件 Reposition事件发生在一条记录成为当前记录后。只要改变记录集的指针使其从一条记录移到另一条记录。会产生Reposition事件,可以在该事件过程中建立程序,可反映出记录位置、记录总数等。 2Validate事件 当要移动记录指针前,修改与删除记录前或卸载含有数据控件的窗体时触发Validate事件。Validate事件检查被数据控件绑定的控件内的数据是否发生变化。它通过save参数(True或False)判断是否有数据发生变化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论