1、第第8 8章章 数据库应用数据库应用 在Visual Basic的应用领域中,以数据库的应用最为广泛,也最为复杂。本章主要介绍Visual Basic访问数据库的基本方法如可视化数据管理器、数据访问接口,多种数据绑定控件等。8.1 8.1 数据库的概念数据库的概念数据库 在现实世界中,充满了各种各样的信息,如声音、文字、图像等,这些信息在计算机中的表示即为数据。(1)数据(Data)(2)数据库(DBDatabase)(3)数据库管理系统(DBMS)(4)数据库系统(DBS,Database System)关系数据库 根据目前数据库的分类,有关系数据库、层次数据库和网状数据库3种。然而在现实生
2、活中关系数据库因其现实直观,更符合人们的使用习惯,也是大家接触最多的一种数据库。(1)关系数据库(2)表(3)记录(4)字段(5)记录集(6)SQL语言8.2 8.2 可视化数据库管理器可视化数据库管理器【相关知识】【相关知识】1.1.可视化数据管理器 Visual basic 6.0为用户提供了功能强的可视化数据管理器(visual Data Manager,VisData)。在Visual Basic开发环境内单击“外接数据”菜单中的“可视化数据管理器”选项,即可打开可视化数据管理器,如图8-1所示,图8-1 可视化数据管理器实践训练实践训练【实训项目一】1.实训内容在Visual Bas
3、ic6.0中启动可视化数据管理器。2.解决方案在Visual Basic6.0开发环境内单击“外接数据”菜单中的“可视化数据管理器”选项如图8-2所示图8-2 打开可视化数据库管理器3.项目分析Visual Basic6.0中带有可视化数据管理器,可直接打开使用。【实训项目二】1.实训内容在Visual Basic6.0中创建Microsoft Access数据库,数据库名为“student.mdb”。2.解决方案(1)选择数据库 在“可视化数据管理器”窗口中,单击“文件”菜单中的“新建”菜单项,选择“Microsoft Access”中可创建,如图8-3所示。图8-3选择数据库(2)创建数据
4、库 选择要创建的数据库类型及版本后,显示新建数据库对话框,在对话框中选择存入数据库的路径,例如:F:VB,在“文件名”框中输入要创建的数据库名:student.mdb,如图8-4所示,单击“保存”按钮。图8-4创建数据库(3)显示 此时“数据窗口”和“SQL语句”窗口显示在可视化数据管理窗口中,如图8-5所示。“数据库窗口”以树形结构显示数据库中的所有对象,可在“数据库窗口”中单击鼠标右键激活快捷菜单,执行“新建表”、菜单项;“SQL语句”窗口用来执行合法的SQL语句,用户可用窗口上方的“执行”、“清除”、“保存”按钮对SQL语句经行对应的操作。3.项目分析 按照上述步骤可直接在Visual
5、Basic6.0中创建Microsoft Access数据库。图8-5 数据库窗口【实训项目三】1.实训内容 在student.mdb数据库中添加数据表stu,遵循下表规定的字段名,类型,长度,并添加数据。2.解决方案 利用数据库管理器向已建立的数据库student.mdb中添加数据库表stu,操作步骤如下:a.如图8-5所示的“数据库窗口”中单击鼠标右键,选择“新建表”菜单项。字段名类型长度学号Text(文本)10姓名Text(文本)12性别Boolean(逻辑)年龄Integer(整形)专业Text(文本)30图8-6“表结构”对话框显示如图8-6所示的“表结构”对话框。其中,表名称:指数
6、据表的名称,输入:stu。单击“添加字段”按钮显示如图*所示的“添加字段”对话框。名称:指字段名,如学号,姓名等。类型:指字段的数据类型,包括Text,Integer,Long等。大小:指字段的宽度。“固定字段”和“可变字段”:表示字段的长度是否可以变化。允许零长度:表示是否允许零长度字符串为有效字符串。必要的:指字段是否要求非Null值。顺序位置:用于确定字段相对位置。验证文本:如果用户输入的字段值无效则显示“验证文本”的信息。验证规则:确定可以输入什么样的数据。默认值:指插入记录时字段的默认值。图8-7“添加字段”对话框 一个字段的各项信息添完后,单击“确定”按钮,如图8-7所示。之后可添
7、加下一个字段信息,所有字段信息添加完,单击如图8-8中的“生成表”按钮,则生成一张新表。3.项目分析 在Visual Basic6.0中提供了定义表结构,添加数据的方法,按照上述步骤即可完成。图8-8 表结构【实训项目四】1.实训内容在Visual Basic6.0中查询学生情况表stu中年龄大于19岁的记录。2.解决方案在VisData窗口中的建立查询的步骤:a.在VisData窗口中打开上述student.mdb数据库,右击“数据库窗口”,在快捷菜单中选择“新建查询”菜单项,显示“查询生成器”窗口,如图8-9所示。图8-9“查询生成器”窗口b.在“查询生成器”窗口中,单击“表:”框中的“s
8、tu”表名。c.在“字段名称:”下拉列表框中选择“stu.年龄”,在“运算符”下拉列表框中选择“”,在“值:”文本框中输入19。d.在“要显示的字段:”框中选择查询表中要显示的字段“stu.学号”、“stu.姓名”、“stu.年龄”,单击“升序”,如图8-10所示。图8-10选择要显示的字段e.单击“将And加入条件”或“将Or加入条件”按钮,在“条件:”框中显示要查询的条件。f.单击“显示”按钮,显示“SQL查询”消息框如图8-11所示,将查询条件用SQL语句写出。单击“运行”按钮,则显示“这是SQL传递查询吗?”消息框,单击“否”,生成查询结果窗口,如图8-12所示。图8-11 显示“SQ
9、L查询”图8-12 查询结果g.单击“保存”按钮,将查询结果保存,输入查询名“stuquery”如图8-13所示。则在VisData窗口左侧的“数据库窗口”显示student数据库中的表和1个查询。图8-13 保存查询3.项目分析在Visual Basic6.0中提供了丰富的提案件查询组合,开发人员可根据自己需要生成查询语句。8.3 8.3 使用数据控件访问数据库使用数据控件访问数据库 Visual Basic 6.0中提供了大量的控件用于数据库编程,这无疑给用户设计数据库应用程序提供了强有力的支持。在一定程度上来说,Visual Basic 6.0是数据库应用程序设计的首选开发工具。Visu
10、al Basic 6.0提供了常用数据库访问控件、数据库绑定控件。用户可以通过数据库访问控件来建立与数据库的连接,用数据绑定控件对数据进行显示。然后用数据库访问控件对数据库进行直接的操作。一般的数据库相关操作基本上可以完全由数据库控件完成。1.DATA数据控件访问数据库【相关知识】【相关知识】Data控件的属性 Data控件常用的属性有Connect属性、DatabaseName属性、RecordSource属性及RecordsetType属性。下面分别对这几种属性予以介绍。(1)Connect属性 Connect属性用于设置连接数据库的类型。Visual Basic 6.0提供了多种可访问的
11、数据库类型,其中比较常用的有Access、dBASE和FoxPro等。该属性可以通过“属性窗体”来进行设置。这里用Access数据库作为后台数据库,所以选择Access类型。语法如下:object.Connect=databasetype参数databasetype指定数据库的类型。(2)DatabaseName属性 DatabaseName属性用于返回或设置Data控件数据库文件的名称和位置。该属性可以通过单击“属性窗口”中DatabaseName属性右边的按钮来进行设置,也可以在运行时通过语句来设置。语法如下:object.DatabaseName=pathname 参数pathname用
12、于指定数据库文件的路径和名称。(4)RecordsetType属性 RecordsetType属性用于返回或设置一个值,指定用Data控件创建的Recordset对象的类型。语法如下。object.RecordsetType=valueobject:对象表达式,此处为Data控件。value:字符串表达式,该参数用于指定Recordset类型的常数或值。2.Data控件的方法 Data控件常用的方法有Refresh方法、UpdateRecord方法及UpdateControls方法。下面分别对这三种方法予以介绍。(1)Refresh方法 Refresh方法用于更新Data控件的数据。该方法常用
13、于当打开或重新打开数据库时来刷新记录集。例如,当用改变Connect或RecordSource刷新后,必须用Refresh方法来更新。语法如下:object.Refresh(2)UpdateRecord方法 UpdateRecord方法用于将数据绑定控件中的内容写入到数据库中。UpdateRecord方法与执行Edit方法改变一个字段并随后执行Update方法产生效果相同。语法如下:object.UpdateRecord(3)UpctateControls方法 UpdateControls方法用于从Data控件的Recordset对象中获取当前记录,并且在绑定数据控件中显示当前记录。该方法可以
14、终止任何挂起的Edit或AddNew操作。语法如下:object.UpdateControls3.Data控件的事件 Data控件常用的事件有Error事件、Reposition事件及Validate事件。下面分别对这三种事件予以介绍。(1).Error事件 Error事件,当Data控件产生执行错误时触发。通常用该事件来捕获错误并进行处理。例如,当Data控件要自动打开一个数据库,并在Form_Load事件后装载一个Recordset对象。Error事件的代码框架如下所示:Private Sub Data1_Error(DataErr As Integer,Response As Integ
15、er)添加处理代码End Sub参数说明如下:DataErr:该参数用于指定错误号。Response:该参数用于指定所要采用的响应编号。(2).Raposition事件 Reposition事件,当一个记录成为当前记录后触发。通常是利用该事件进行以当前记录内容为基础的操作,如进行计算或改变窗体来显示当前记录。(3).Validate事件 Validate事件,当一条不同的记录成为当前记录之前,且在Update方法及Delete、Unload或Close操作之前会发生该事件。实践训练实践训练【实训项目】1.实训内容 利用DATA数据控件,显示学生基本情况窗体,如图8-14所示,显示数据库stud
16、ent.mdb中表stu中的学号、姓名、性别、年龄、专业字段信息2.解决方案图8-14 窗体1.加入DATA对象 如图8-15所示,设置“DatabaseName”为“F:VBstudent.mdb”用于指定数据库文件的路径和名称。图8-15 设置Data12.设置文本框显示数据库student.mdb中表stu中的学号、姓名、性别、年龄、专业字段信息。如图8-16所示,设置DataSource属性为Data1,设置数据控件为Data1;设置DataField属性为学号,设置绑定控件与数据库学号字段建立联系。图8-16 设置Text13.项目分析 按照上述步骤可直接在Visual Basic6
17、.0中利用DATA数据控件,显示学生基本情况。ADOADO数据控件访问数据库数据控件访问数据库【相关知识】【相关知识】ADO控件用于对数据源进行访问和操作。与Data控件相比,ADO控件的应用范围和功能更强大。该控件通过Microsoft ActiveX Data Object(ADO)技术,快速地创建一个到数据库的连接。ADO控件可以连接任何符合OLE DB规范的数据源或是一个ODBC数据库。目前,在数据库应用程序开发中ADO控件已经逐渐地替代了Data控件。ADO控件不是内部控件,在使用ADO控件之前,必须先将该控件加载到工具箱中。选择“工程”一“部件”命令,打开“部件”对话框,如图8-1
18、7所示。在列表中选择“Microsoft ADO Data Control 6.0(OLE DB)”选项,单击“确定”按钮,加载ADO控件到工具箱中,如图8-18所示。图8-17 打开部件图8-18部件对话框1ADO控件的属性 ADO控件常用的属性有ConnectionString属性、RecordSource属性、CommandType属性及ConnectionTimeout属性。下面分别对这4种属性予以介绍。(1)ConnectionString属性 ConnectionString属性用于建立到数据源的连接信息。在使用该属性时,常常通过ADO控件的属性选项卡来为该属性指定连接字符串。在应
19、用程序代码编写时,也可以通过该属性来动态地改变数据源。(2)RecordSource属性 RecordSource属性用于设置ADO控件要访问数据库中的数据表。当然,也可以将该属性设置为一个SQL查询来返回符合条件的记录。以下代码演示了如何使用RecordSource属性返回查询结果。代码如下所示。Adodcl.RecordSource=”SELECT*FROM EmpTable”(3)CommandType属性 CommandType属性用于指定RecordSounce属性的取值类型。可以直接在“属性窗口”中的CommandType属性列表框中从右边的下拉到表选择需要的类型。(4)Conne
20、ctionTimeout属性 ConnectionTimeout属性用于设置一个连接建立的等待时间,以秒为单位。如果连接超时,则返回超时错误并给出提示信息。例如,将ADO控件的ConnectionTimeout属性设置为15s。代码如下所示:Adockl.ConnectionTimeout=15在应用程序中加入以上代码,当由于一些原因导致连接超过15s时,系统会提示用户连接超时。2ADO控件的方法 ADO控件常用的方法有UpdateControls方法及Refresh方法。下面分别对这两种方法予以介绍。(1)UpdateControls方法 UpdateConrrols方法用于从ADO控件的R
21、ecordset对象中获取当前记录,并在数据库绑定控件中显示相应的数据。如果读者改变了数据,然后又决定取消这些改变,则可以使用该方法将绑定控件的内容恢复为其初始值。语法如下。object.UpdateControls(2)Refresh方法 Refresh方法用于更新ADO控件的数据。该方法常用于数据修改或改变后的刷新。语法如下:object.Refresh3用ADO控件连接数据库 用ADO控件连接数据库是编写数据库应用程序的首要任务。ADO控件连接数据库主要有两种方法。第一种方法是通过对ADO控件的属性进行设置,来实现与数据库的连接。第二种方法是使用代码实现与数据库的连接。实践训练实践训练【
22、实训项目】1.实训内容 设置ADO控件的属性实现连接数据库。在Visual Basic6.0中设置ADO控件的属性实现连接学生基本信息数据库“stu”2.解决方案(1)为窗体上添加一个ADO控件 右键单击ADO控件,如图8-19所示。选择“ADODC”属性命令,打开ADO控件“属性页”对话框,如图8-20所示。图8-19添加“ADO控件”图8-20“属性页”对话框(2)在“属性页”对话框中选择“通用”选项卡,选中“使用连接字符串”单选按钮,然后单击“生成”按钮,弹出“数据连接属性”对话框,如图8-21所示。该对话框用于提供数据源及OLE DB的提供者。由于前面章节中生成“stu”数据库采用的是
23、Acccss数据库。因此,在列表中选择“Microsoft Jet 4.0 0LE DB Provider”选项,单击“下一步”按钮。“数据连接属性”对话框转换到“连接”选项卡。图8-21“数据连接属性”对话框图 图8-22“连接”选项卡(3)在“连接”选项卡中需要输入或选择连接数据库的名称 如图8-22所示。读者可以通过单击“”按钮来选择要连接的数据库。单击“”按钮后,选择数据库“F:VBstudent.mdb”。“连接”选项卡还提供了连接测试的功能,读者可以单击“测试连接”按钮来验证数据库连接是否正确。单击“测试连接”按钮,如果连接正常,则会提示读者 “测试连接正常”。单击“确定”按钮,完
24、成数据库的连接。图8-23“记录源”选项卡(4)完成数据库连接后,会弹出“属性页”对话框的“记录源”选项卡,如图8-23所示。该选项卡用于选择记录源,其中提供了4种命令类型可供选择。这4种命令类型,读者可以参考ADO控件的Commandlype属性选择“2-adCmdTable”选项,井在“表或存储过程名称”列表中选择“stu”选项。单击“确定”按钮完成记录源的设置。至此,完成了用ADO控件连接数据。3.项目分析在Visual Basic6.0中通过添加ADO控件,设置属性页属性,设置连接选项卡,实现连接数据库8.4 8.4 综合实训综合实训【综合实训】1.实训内容 程序运行后出现如图8-24
25、窗体,窗体显示职员信息预览,窗体左侧显示所有职员信息,右侧“职员信息”栏中显示单个职员的详细信息。利用ADO对象模型中的Connection对象和Recordset对象打开职员数据库“DBEmp”,操作“EmpTable”显示窗体内容。2.解决方案图8-24 程序界面程序创建步骤如下:单击“工程”“引用”命令,选择“Microsoft ActiveX Data Object”列表项,然后单击“确定”按钮,将ADO对象添加到工程中。选择“工程”“部件”命令,选择“Microsoft ADO Data Control 6.0(OLE DB)”列表项,然后单击“确定”按钮,将MSHFlexGrid表
26、格控件添加到工具箱中。向窗体中添加2个框架控件、5个标签控件及1个MSHFlexGrid表格控件。代码如下:程序名:F:VB prac8_4_1.frmF:VB prac8_4_1.vbp Option Explicit Dim conn As ADODB.Connection 定义Connection对象 Dim rs As ADODB.Recordset 定义Recordset对象 Private Sub Form_Load()初始化程序 Set conn=New ADODB.Connection 分配一个Connection对象 Set rs=New ADODB.Recordset 分配
27、一个Recordset对象 conn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;&_ Data Source=&App.Path&DBEmp.mdb;&_ Persist Security Info=False conn.Open 打开连接 rs.Open EmpTable,conn,adCmdTable 打开数据表EmpTable Set MSHFlexGrid1.DataSource=rs 设置控件数据源为rs对象 rs.Close 关闭Recordset对象 conn.Close 关闭Connection对象 End Sub Pr
28、ivate Sub MSHFlexGrid1_RowColChange()conn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;&_ Data Source=&App.Path&DBEmp.mdb;&_ Persist Security Info=False conn.Open 打开连接 rs.Open select*from EmpTable where 姓名=&MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,2)&,conn,adOpenKeyset If rs.RecordCount 0 Then
29、txtID.Text=rs.Fields(0)显示编号信息 txtName.Text=rs.Fields(1)显示姓名信息 txtGender.Text=rs.Fields(2)显示性别信息 txtAddr.Text=rs.Fields(3)显示地址信息 End If rs.Close 关闭Recordset对象 conn.Close 关闭Connection对象 End Sub 运行结果如图8-25所示,当用户在表格控件中选择记录时,详细信息会显示在右侧的“详细信息”栏中。图8-25 运行结果3.项目分析 本程序利用ADO对象,显示职员信息,窗体左面显示职员信息概况,右面显示单个职员的详细信息。Thank You
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。