收藏 分享(赏)

第12章 数据库开发.ppt

上传人:s36f12 文档编号:7901697 上传时间:2019-05-29 格式:PPT 页数:45 大小:267KB
下载 相关 举报
第12章 数据库开发.ppt_第1页
第1页 / 共45页
第12章 数据库开发.ppt_第2页
第2页 / 共45页
第12章 数据库开发.ppt_第3页
第3页 / 共45页
第12章 数据库开发.ppt_第4页
第4页 / 共45页
第12章 数据库开发.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、2019/5/29,清华大学出版社,1,第12章 数据库访问,12.1 数据库基本知识 12.2 数据库的创建 12.3 Data控件及应用 12.4 ADO Data控件及应用 12.5 SQL语言 12.6 ADO对象及应用,2019/5/29,清华大学出版社,2,【目的要求】 1.了解数据库的基本理论知识; 2.了解data控件操作数据库的方法; 3.了解Dao对象创建数据库的方法 ; 4 .掌握SQL语句在高级语言中的书写方法; 5 .掌握ADO控件的基本属性和操作数据库的基本方法; 6 .掌握ADO对象的基本结构和对数据库的操作方法。 【重点】 ADO对象的层次结构与常用对象的属性、

2、方法 ADO对象操作数据库的基本方法,2019/5/29,清华大学出版社,3,12.1 数据库基本知识,12.2 数据库的创建 12.2.1 利用可视化数据管理器(VisData)创建数据库,注意:VB所提供的【可视化数据管理器】创建数据库的方法,在实际使用中,操作很不方便,并且该方法所创建的Access数据库版本低。在实际应用中时应使用现在流行的Access2002来创建数据库。高版本的Access数据库不能被data控件识别。,2019/5/29,清华大学出版社,4,12.2.2 用DAO对象创建数据库,1、对DAO对象的引用,2019/5/29,清华大学出版社,5,【例12.1】用DAO

3、对象来创建数据库student.mdb。,Dim MyData As Database Dim MyTable As TableDef Dim MyField As Field Set MyData = Workspaces(0).CreateDatabase(“e:student.mdb“, dbLangGeneral, dbversion70) Set MyTable = MyData.CreateTableDef(“jbqk“) Set MyField = MyTable.CreateField(“学号“, dbText, 6)MyTable.Fields.Append MyField

4、Set MyField = MyTable.CreateField(“姓名“, dbText, 10)MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(“性别“, dbText, 10),2019/5/29,清华大学出版社,6,MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(“班级“, dbText, 20)MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(“英

5、语“, dbInteger)MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(“计算机“, dbInteger)MyTable.Fields.Append MyField Set MyField = MyTable.CreateField(“照片“, dbText, 60)MyTable.Fields.Append MyField MyData.TableDefs.Append MyTable,2019/5/29,清华大学出版社,7,12.3 Data控件及应用,Data数据控件提供了一种访问数据库中数据的方法。数据

6、控件只是负责数据库和工程之间的数据交换,本身并不显示数据,要借助Visual Basic控件中的绑定控件来显示数据表中的数据。数据控件使得用户可以不编写任何代码就能完成对数据库的大部分操作。Data数据控件可以操作如Microsoft Access,Microsoft FoxPro和dBase等数据库。也可用Data控件来访问Microsoft Excel,Lotust 和标准ASCII文本文件等数据源。此外,Data控件还可访问和操作远程的开放式数据库互连(ODBC)数据库,如Microsoft SQL服务器和Oracle。,2019/5/29,清华大学出版社,8,12.3.1 Data控件

7、的基本功能及常用属性,1.Data控件常用属性 Connect:设置或返回数据数据库类型。可通过【属性】窗口设置Connect属性,也可以在运行时通过代码来设置,例:Data1.Connect=”Excel 9.0”如果处理的是Access格式的数据库,则不需要设置此属性。 DatabaseName:设置或返回被访问数据库的名称或路径。可在设计时用【属性】窗口设置该属性;也可以在运行时通过代码来设置,例:Data1.DatabaseName= App.Path + “student .mdb “App.Path:表示当前路径。,2019/5/29,清华大学出版社,9,RecordSource:

8、设置或返回数据库中表或查询的名称。也可以在运行时通过代码来设置,例:Data1.RecordSource =“jbqk “ RecordsetType:在通过代码或其他数据控件建立记录集时设置这个属性,但必须确保绑定的数据控件的DataField属性与记录集中的域匹配。 ReadOnly:在对数据库只查看不修改时,通常将此属性设置为True; Exclusive:当这个属性值设置为True时,则在通过关闭数据库撤消这个设置前,其他任何用户都不能对数据库进行访问(独占模式)。默认值为False。,2019/5/29,清华大学出版社,10,2.Data控件常用事件,Reposition:当用户单击

9、Data控件两端的或按钮来改变当前记录时,触发该事件。,3.数据绑定控件常用属性 要使文本框等控件与数据控件绑定在一起,成为数据控件的绑定控件,须设置如下属性: DataSource:该属性用来设置与文本框等控件绑定在一起的数据控件名称。可通过【属性】窗口设置;也可以在运行时通过代码来设置;例: Text1.DataSource=“data1” DataField:该属性返回或设置将当前控件绑定到数据表的字段名称。可在【属性】窗口中选择要显示的字段;也可以在运行时通过代码来设置;例:Text1.DataField=“姓名”,2019/5/29,清华大学出版社,11,12.3.2 使用data控

10、件操作数据库,Data数据控件包含一个重要的对象Recorset,代表当前数据库中用户正在使用的数据表内的记录的集合。用户可以用Recordset对象的属性和方法来寻找、排序、增加和删除记录。具体应用在下面的例题中介绍 :,【例12.2】 设计如左图所示的界面,浏览student数据库中的学生基本情况表(jbqk)的信息,学生的照片存放在当前路径下的BMP文件夹下。,2019/5/29,清华大学出版社,12,12.4 ADO Data控件及应用,Data控件适合小型的数据库,诸如Access和ISAM数据库的开发。随着网络技术和数据库技术的不断发展,这些数据有可能分布在不同的地方,并且使用不同

11、的格式;因此传统的解决方案带来了很多问题,比如数据更新不及时、空间资源的冗余和访问效率低等。 为此Microsoft提出一种新的数据库访问策略,即“统一数据访问”(Universal Data Access)的策略。该策略的总体解决方案是OLE DB;但OLE DB只能在C/C+语言中使用,无法在VB中直接使用。为此Microsoft公司对OLE DB进行了封装,这就是ADO(ActiveX Data Objects) 。,2019/5/29,清华大学出版社,13,12.4.1 ADO控件及DataGrid控件介绍,ADO Data 控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),

12、以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。 DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示数据表的记录和字段。以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。,2019/5/29,清华大学出版社,14,1、ADO Data控件介绍,Ado Data控件的引用 在工具箱中单击右键,选择【部件】菜单项,选择【控件】选项卡中的【Microsoft ADO Data Control 6.0 (OLEDB)】复选框,即可将ADO Data控件加入工具箱。 Ado Data控件的属性、事件,Ado Data

13、控件的常用属性,2019/5/29,清华大学出版社,15,Ado Data控件的常用事件,2019/5/29,清华大学出版社,16,2. DataGrid控件介绍,DataGrid控件的引用 在工具箱中单击右键,选择【部件】菜单项,然后选择【控件】选项卡中的【Microsoft DataGrid Control 6.0 (OLEDB)】复选框,即可将网格控件加入工具箱。 DataGrid控件的属性,2019/5/29,清华大学出版社,17,3. ADO控件、DataGrid控件应用,建立一个工程,在窗体中加入ADO Data数据控件、DataGrid网格控件,如图12-13所示。,2019/5

14、/29,清华大学出版社,18,步骤:,打开ADO Data控件【属性】窗口,设置ConnectionString属性 。 选择数据库驱动程序。 在这个窗口中显示的是各个数据库厂商为OLE DB提供的驱动程序(Provider)。如果数据库是用Access2000 以前的版本建立的,可以选择【Microsoft Jet 3.51 OLE DB Provider】,如果数据库是用Access2000以后的版本建立的,则要选择【Microsoft Jet 4.0 OLE DB Provider】; 单击【下一步】按钮,在弹出的对话框的“选择或输入数据库名称”对应的文本框内输入数据库名称或单击按钮,选

15、择Student.mdb;单击【测试连接】按钮,直到出现“测试连接成功”对话框。 单击【Microsoft数据链接】窗口的【确定】按钮,单击【数据链接属性】窗口的【确定】按钮,关闭该窗口。,2019/5/29,清华大学出版社,19,打开ADO Data控件【属性】窗口,在RecordSource属性栏位单击 按钮,弹出如下图所示的【属性页】对话框,在【命令类型】中选择【2adCmdTable】,在【表或存储过程名称】中选择表【jbqk】。,2019/5/29,清华大学出版社,20,将网格控件(DataGrid1)的DataSource属性设置为“Adodc1”。设计完成后,运行结果如下图所示。

16、也可以通过编程来完成对DataGrid1的DataSource属性设置,在Form_Load事件中输入语句:Set DataGrid1.DataSource = Adodc1,2019/5/29,清华大学出版社,21,12.4.2 ADO控件的RecordSet对象,ADO Data控件链接到数据库的某个数据表后,对数据表的记录的操作,就变为了对RecordSet(数据集)对象的操作。换言之,RecordSet对象存放了数据表中的记录。,1. RecordSet对象常用属性,2019/5/29,清华大学出版社,22,RecordSet对象属性的应用,数据的排序(Sort) Recordset对

17、象的Sort属性具有对数据进行排序的能力,如按“学号”字段升序排列: Adodc1.Recordset.Sort=”学号ASC” 其中ASC表示升序,DESC表示降序。若要取消上述排序,可使用如下代码: Adodc1.Recordset.Sort=” ” 数据的过滤(Filter) 通过Recordset对象的Filter属性可设置筛选条件,以限制可用的记录,例如要显示性别为“男”的所有记录: Adodc1.Recordset.Filter=”性别=男 ” 取消筛选:Adodc1.Recordset.Filter=adFilterNone,2019/5/29,清华大学出版社,23,2. Rec

18、ordSet对象常用方法,对记录集的操作很多都要通过RecordSet对象的方法来实现 MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法当移动记录指针到最后一个记录之后时,EOF属性为True;当移动记录指针到的首记录之前时,BOF属性为True; 为了避免指针移动到记录尾和记录首部时发生错误,可采用下述代码来处理:,当向后移动时,如果BOF为True,则将第一个记录成为当前记录:Adodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF = True ThenAdodc1.Recordset.MoveFi

19、rstEnd If,当向前移动时,如果EOF为True,则将最后一个记录成为当前记录:Adodc1.Recordset. MoveNextIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset. MoveLastEnd If,2019/5/29,清华大学出版社,24,数据的查找(Find),Find方法可以一次找出一条符合条件的记录,并使其成为当前数据记录。通过参数的加入,方法能够依照所给的条件,从指定的起始位置往前或往后搜索数据。 例如:在当前记录集中查找学号为034201的记录: Adodc1.Recordset.Find ”学号=03420

20、1 ” Find方法的通用格式: Find criteria,SkipRows,searchDirection,start 各参数的含义:,2019/5/29,清华大学出版社,25,添加新记录(AddNew),Adodc1.Recordset. AddNew在数据集的尾部添加新记录 保存对记录的修改(Update)Adodc1.Recordset. Update 删除当前记录(Delete)Adodc1.Recordset. Delete,2019/5/29,清华大学出版社,26,【例12.5】综合应用Ado控件和DataGrid控件完成学生基本情况表(jbqk)的显示、查询、排序和筛选,如下

21、图所示。,2019/5/29,清华大学出版社,27,12.5 SQL语言,2019/5/29,清华大学出版社,28,12.6 ADO对象及应用,当在一个窗体中同时要对多个数据库(表)访问时,需要放置多个ADO控件,造成控件的繁琐引用,编程缺乏灵活性。而ADO对象模型定义了一个可编程的分层对象集合;可以方便地用同一种方法访问各种数据源。ADO对象是应用层的编程接口,适合于各种客户机/服务器应用系统和基于Web的应用,尤其在一些脚本语言中访问数据库操作是ADO对象的优势。ADO对象可更好地用于网络环境,通过优化技术,它会尽可能地降低网络流量; ADO对象主要由三个对象成员:Connection、C

22、ommand和Recordset对象组成,另外还有几个集合对象,如Errors、Parameters和Fields等。,2019/5/29,清华大学出版社,29,12.6.1 ADO对象的引用,单击【工程】菜单的【引用】命令,在弹出的【引用】对话框列表中选取【Microsoft ActiveX Data Object 2.0 Library】选项 ;(其中2.0为版本号,如果你的系统中有更高版本的ADO对象,则可以选取高版本的ADO对象),2019/5/29,清华大学出版社,30,12.6.2 ADO对象编程模型简介,ADO对象模型包括下表所示的一些可编程的对象。每个对象都具有各自的属性和方法

23、。,2019/5/29,清华大学出版社,31,Ado对象模型的简单层次结构,2019/5/29,清华大学出版社,32,1.连接(Connection)对象,Connection对象代表与数据源之间的一个连接,ADO的Connection对象封装了OLE DB的数据源对象和会话对象。Connection对象的常用属性、方法如下: ConnectionString属性 :设置到数据源的连接信息,包括OLE DB提供者(Provider)和数据源 CursorLocation属性:指定使用客户端游标还是服务器端游标 Open方法:用来初始化Connection对象与物理数据源的连接 Close方法:

24、关闭Connection对象与物理数据源的连接,并释放与之关联的系统资源,但并没有释放Connection对象本身 Execute方法:执行命令,如SQL语句,2019/5/29,清华大学出版社,33,示例1:在窗体的Load事件中建立、打开一个连接。Connection方法的使用方法,Dim cn As New ADODB.Connection声明并实例化Connection对象变量cn Private Sub Form_Load()cn . ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0; _Data Source=D:Studen

25、t.mdb “Provider”:指定OLE DB数据或服务提供者的名称cn.CursorLocation = adUseClient 指定为客户端游标cn.Open 打开连接 End Sub,2019/5/29,清华大学出版社,34,Execute方法的使用方法: 可以使用Connection对象的Execute方法执行SQL语句完成对数据库的操作,并将查询结果赋值给记录集(Recordset)对象。,Dim rs As New ADODB.RecordsetSet rs=cn. Execute(“select * from jbqk ”) 对象的赋值要用SET语句Close方法的使用方法:

26、在终止应用程序前,应该先关闭连接: Cn.Close,2019/5/29,清华大学出版社,35,2.命令(Command)对象,Command对象是ADO的基本对象之一,用于完成对数据库的操作。Command对象的优势在于:第一可以保存命令的信息,以便多次查询;第二,如果要进行参数化查询或对存储过程的访问,则必须使用Command对象。Command对象的常用属性、方法如下: ActiveConnection属性:设置当前的Command对象所对应的Connection对象 CommandText属性:描述发送的命令文本,如SQL语句、数据表名称或存储过程名称 CommandType属性 :设

27、置CommandText的类型;以便于ADO优化命令的执行 Execute方法:执行CommandText属性所指定的操作,2019/5/29,清华大学出版社,36,示例2:使用Command对象执行对数据库的查询,结果在网格控件(Datagrid1)上显示。,Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command Private Sub Form_Load() cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0

28、;Data Source=d:student.mdb“cn.CursorLocation = adUseClientcn.OpenWith cmd 对Command对象变量Cmd进行设置.ActiveConnection = cn.CommandType = adCmdText.CommandText = “select * from jbqk“End With,2019/5/29,清华大学出版社,37, 使用Command对象的Execute方法,执行SQL语句,并将将查询结果填充到记录集对象rsSet rs = cmd.Execute Set DataGrid1.DataSource =

29、rs 用网格控件显示记录集对象rs End Sub,3.记录集(Recordset)对象,Recordset对象是ADO数据操作的核心;在记录集中,总是有一个当前的记录。记录集是ADO管理数据的基本对象,所有的Recordset对象都按照行列方式(表状结构)进行管理,每一行对应一个记录(Record),每一列对应一个域(Field)。Recordset对象的常用属性、方法如下:,2019/5/29,清华大学出版社,38,属性: ActiveConnection :设置当前的Recordset对象所对应的Connection对象。 BOF :指示当前记录位置是否位于Recordset对象的第一个

30、记录之前。 EOF:指示当前记录位置位于 Recordset 对象的最后一个记录之后。 CursorType :指示在 Recordset 对象中使用的游标类型。 LockType:指示编辑过程中对记录使用的锁定类型。 RecordCount:返回Recordset 对象中记录的个数。 Sort:数据的排序。 Filter:数据的过滤,设置筛选条件,以限制可用的记录。,2019/5/29,清华大学出版社,39,方法:,MoveFirst、MoveLast、MoveNext和MovePrevious:移动Recordset对象中记录指针到首记录、末记录、下一条记录、前一条记录 AddNew:向可

31、更新的Recordset添加一条新记录 Update:保存对 Recordset 对象的当前记录所做的所有更改。 Delete :删除当前记录 Open:打开表示记录的游标,这些记录来自基本表、查询结果或先前保存的Recordset,2019/5/29,清华大学出版社,40,CursorType 属性:Recordset对象通过游标对记录进行访问,在ADO中,游标分为以下4种,如下表所示。如果在代码中当不指定游标类型时,将使用“仅向前游标”做为其默认类型。,2019/5/29,清华大学出版社,41,LockType属性:为了解决在多用户环境下同时访问某数据表时,易造成的数据冲突等问题,Ado对

32、象在打开Recordset前,通过设置LockType属性来指定游标的的锁定类型;LockType属性的取值如下表所示。,2019/5/29,清华大学出版社,42,示例3:使用Recordset对象执行对数据库的查询,结果在网格控件(Datagrid1)上显示。,Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub Form_Load()cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:student.mdb “c

33、n.CursorLocation = adUseClientcn.Open使用Recordset对象的open方法运行SQL语句rs.Open “select * from jbqk“, cn, adOpenStatic, adLockOptimisticSet DataGrid1.DataSource = rs 将记录集对象rs捆绑到网格控件 End Sub,2019/5/29,清华大学出版社,43,通过上面三个示例,我们看到,使用ADO对象操纵数据库通常是按下面的步骤完成的: 1、使用Connection对象建立与数据源的连接; 2、然后可以通过Connection对象的Execute方法、Recordset对象的Open方法或Command对象的Execute方法执行SQL语句来完成对数据库的操作。,而Recordset对象作为ADO对象的核心,可以自由灵活使用,所以在下面的例题中我们主要是通过Recordset对象来完成数据库的操作。,2019/5/29,清华大学出版社,44,【例12.6】使用Ado对象完成对学生基本情况表(jbqk)的显示如图所示。,2019/5/29,清华大学出版社,45,【例12.7】使用Ado对象完成按“班级”查询辅导员的基本情况和班级学生基本情况。如图所示。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报