1用VB6.0的Data控件存取数据库图片的新方法摘要:介绍了VB6中Data控件建立数据库的方法以及如何使用独特的方法实现对图像数据的显示和查询。关键词:Data控件;数据库;图像数据1建立Access关系型数据库:随着计算机技术的发展,数据库越来越显示出其强大的数据存储和数据管理功能。为了满足人们对数据库的需要,VisualBasic提供了强大的数据库的程序设计功能。虽然VB并不是专用与数据库开发的软件系统,但它所提供的数据库功能却几乎可以满足所有编程人员的需求。在VisualBasic环境下,Access数据库是缺省数据库,Access所采用的Jet数据库引擎得到了最有效的利用。例如VisualBasic的内部数据访问控件(Data)就是建立在Jet引擎基础上的。数据库是一组特定数据的集合,是提供数据的基地。它能保存数据并允许用户访问所需的数据。数据库保存的数据都是相关数据,为了便于保管和处理这些数据,将这些数据存入数据库时必须具有一定的数据结构和文件组织方式。数据库中的数据集合组成特定的表,表中的每一列为一个字段,每一行为一个记录。其中表是按行与列排列来表示相关信息的逻辑组。Jet数据库引擎包含在一组动态链接库(DLL)中,运行时,这些动态链接库文件被链接到VisualBasic程序。它把应用程序的请求翻译成对.mdb文件或其他数据库的物理操作。数据库引擎真正读取、写入和修改数据库,并处理数据库中所有内部事物。在Access数据库系统中,信息以数据库为单位存储到存储介质如磁盘、光盘中。其扩展名为mdb。2Data控件2.1Data控件的内涵Data控件是VisualBasic和数据库之间的联接桥梁。通过Data控件可以不用编写代码而创建简单的数据库,存取数据。此外,也可把Data控件和VisualBasic代码结合起来创建完整功能的应用程序,为数据处理提供高级的编程控制。在不用代码的情况下Data控件能够完成下列任务(1)与本地或远程数据库连接(2)打开指定的数据库表或定义记录集。(3)传送数据字段到各种数据绑定控件,并可在其中显示或改变数据字段的值。(4)通过数据绑定控件来添加新记录或更新数据库(5)捕获访问数据时出现的错误(6)关闭数据库要使用Data控件,至少得设置DatabaseName属性和RecoredSource属性。一旦设置了DatabaseName属性,VisualBasic将检索数据库里的所有表和有效查询的名称,并根据DatabaseName把它们显示在一个下拉列表里。若想打开外部的数据库,还必须在“属性”窗口设置Connect属性。DatabaseName属性用于返回或设置Data控件的数据源的名称及位置,指定所要用的数据库。RecoredSource属性用于指定控件能看到的数据库部分,即指定通过窗体上被绑定的控件所访问记录的来源。只有在设置了DatabaseName属性后才能设置RecoredSource属性。当在运行时改变RecoredSource属性的值,必须使用Refresh方法使改变生效,并重建Recoredset。2.2数据绑定控件数据绑定控件是用于访问数据库信息的数据识别控件。当创建一个Data控件后,通过设定相应的属性,把数据绑定控件与Data控件联系起来,就可以在数据绑定控件中显示数据库2中相应记录的字段值,同时还可对这些数值进行更改。在绑定控件里改变的数据,当移动另一个记录时,这些改变会自动地写入到数据库中。2.3数据绑定控件的属性1.DataField属性用于指定Data控件所建立的记录集里字段的名称2.DataSource属性用于指定Data控件所要绑定的数据控件,通过这个控件将当前控件连接到数据库上。该属性在运行时不可用。如果要在运行时将一个控件连结到数据库中的某个字段上,必须在设计时用DataSource属性指定一个Data控件。2.4添加数据绑定控件要在窗体中添加数据绑定控件,首先应在窗体中创建绑定控件,然后设置该控件的DataSource属性和DataField属性,指定要绑定的Data控件和记录集里的有效字段。如果设计时数据库可用,则有效字段的列表将显示在“属性”窗口里的“DataField属性设置”框中。如果在设计时数据库不可用,则在数据值从数据库中发送给控件之前,需在运行时提供一个有效的字段名称。3应用实例笔者使用Data控件及数据绑定控件创建一个学生档案数据库查询系统。首先在VB6通过外接程序将其调用Access2000,创建一个学生档案数据库及学生档案数据表。但是这里需要提醒的是“PictureBox”和“ImageList”都不能接收来自“Data”控件的信息,因此可在图片框的内部放置一个不可见但是有效的“Label”控件,让其接收文本类型的路径信息:待用“Loadpicture()”函数装载图像时,参数用“LabelX.Caption”代替即可。其步骤如下:3.1创建数据库及空数据表1.启动VB6,直接进入VB6的开发界面,在主界面添加Text1~Text5,label1~label6,image1,command1~command4,Data1,见图3.2.调用外接程序,由于VisualDataManager并非VB6的标准成员,必须通过外接程序将其调用。启动VisualDataManager。3.单击VisualDataManager的“文件”菜单,选择“文件®新建®MicrosoftAccess®“Version7.0mdb”菜单项,创建一个Access数据库。4.在随后弹出的“保存”对话框中,为刚刚创建的数据库取名为Student,此时创建的仅仅是一个空的数据库,还要在其中加入数据表,并在表中添加所需的字段完成创建空数据表的工作。右击“数据库窗口”,在弹出的快捷菜单中选择“新建表”项,启动“表结构”窗口,进行数据表的创建工作。并在窗口上方的“表名称”栏中为该表取名StudentList,单击“添加字段”按钮,为该表添加所需的字段才能完成创建空数据表的工作。根据系统设计要求,在表中添加“姓名”、“电话”、“手机”、“传呼”、“地址”、“图像路径”六个字段,依次选取的数据类型是字符型、整型、字符型、字符型、字符型、字符型。5.完成字段的添加工作后,单击“生成表”按钮,VisualDataManager弹出对话框是否要为这个数据库创建一个关键字段,由于关键字段只有在多个数据表的情况下会发挥作用,因此选择“否”。6.数据库及其空数据表的创建工作完毕,回到“数据库窗口”,可以发现数据库属性的下方多了一个名为“StudentList”数据库表。7.在数据表中填写数据右击“数据库窗口”中的“StudentList”数据表,在弹出的快捷菜单中选择“打开”选项,将刚刚创建的空数据表打开,此时的数据表是空的,单击当前窗口中的“添加”菜单,启动添加数据的窗口,按照事先设计的数据类型,在该窗口依次添加第一个学生的“姓名”,“电话”,“手机”,“传呼”,“地址”,“图像路径”等选项,添加完毕,单击“刷新”按钮,则第一个学生的各项信息被综合成一个记录,添加到“StudentList”数据库表当中。重复上述步骤,依次将要建3立的学生档案资料添加到StudentList数据库表当中。见图1。图1StudentList数据表3.2创建数据库程序的基本框架Data控件按照用户提交的要求,通过MicrosoftJet数据引擎从“StudentList”数据库中提取相应的数据记录,这一记录的不同字段传送给了不同的数据绑定控件。文本框类数据绑定控件显示的是文件的“姓名”,“电话”等文本信息,“Data”控件传送过来的字段也正好是文本类型,只需简单传送即可;而“图片框”显示的是图像数据本身,因此在“Data”控件将一个包含文件路径信息的字段传递过来后,必须使用一个LoadPicture()函数将相应的图像显示出来。其流程框架见图2。图2程序的流程框架1.设置各个基本控件的外观属性�Data控件:设置DataSource属性选项,设置为Student;设置RecorderSource为StudentList.4‚单击Form1窗口中的Text1控件,在属性窗口找到其“DataSource属性选项”,设置为Data1控件,表示该控件的数据是通过“Data1”控件从Student数据库中取得的,继续找到该控件的“DataField”属性选项,设置为“姓名”,表示该控件仅显示被选中记录的“姓名”字段。用同样的方法对Text2控件~Text5控件进行绑定。2.选中添加在Image1控件内部的Label6控件,在“Visible”项属性中将其设置成不可见的,通过“Data”控件与“StudentList”数据库表中的“图像路径”字段对它进行绑定。同时,将装载该控件的“Image1”的“Stretch”项属性设置为“True”。编写代码来实现图像的显示:PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)strtemp=label5.CaptionImage1.Picture=Laodpicture(strtemp)EndSub图3程序开发界面图4学生档案界面程序运行结果如图4。4结束语在建立数据库时,常常需要显示与数据有关的图像信息,但编程者常常使用非常复杂的方法,笔者在这里介绍的方法简洁而明了,仅仅做到抛砖引玉的作用。