VB数据库详解.doc_第1页
VB数据库详解.doc_第2页
VB数据库详解.doc_第3页
VB数据库详解.doc_第4页
VB数据库详解.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

11.1 数据库(DateBase)的基本概念一、概念与术语目 前几乎所有的应用程序都需要存放大量的数据,这些大量数据一般都需要经过数据收集、分析后,整理成一定的组织结构,通过数据库管理系统来进行管理。数据库 管理系统提供了数据在数据库内存放方式的管理能力,使程序设计人员在使用数据库时不需要考虑数据的具体操作及数据之间的关系。数据库是一组排列成易于处理和读取的相关信息的集合。数据库按其模型结构可分为层次数据库、网状数据库和关系数据库。其中关系数据库的理论发展最为完备,因此到目前为止关系数据库的应用最为广泛。Visual Basic默认的数据库为微软的Access数据库,可在Visual Basic中利用数据库管理器直接创建,数据库文件的扩展名为.MDB。除此之外,Visual Basic还可以处理各种外部数据库,如dBASE、FoxPro、Paradox、Btrieve、Microsoft Excel、Lotus1-2-3、Text等格式的数据库,甚至其它非关系的数据库,VB在调用这些数据时,都会自动将其转换为关系型的数据库来操作。1数据表(Table)数据表是一组相关联的按行与列排列的逻辑数据的集合,简称为表。在数据库理论中常用来表示一个实体,每个数据表必须有一个表名,一个数据库一般由多个数据表组成,各个数据表之间一般应存在某种关系。2字段(Field)数据表中的每一列称为一个字段。数据表是由其包含的所有字段构成的,每个字段用来描述它包含的数据。在创建数据表时,必须为每个字段起一个名称一般称为字段名,同时需要为每个字段分配一个数据类型、最大长度和其它属性。3记录(Record)数据表中的每一行称为一条记录。记录是字段值的集合,所有用户对数据的访问对象是记录,因此,如果想对某个数据项进行访问,必须首先进行记录定位,严格的说,在一个数据表中不允许存在两条完全相同的记录。4关键字(Keyword)如果数据表中某个字段值或若干个字段值的集合能唯一确定一条记录,则称该字段或字段的集合为该数据表的关键字。在一个数据表中,关键字可能存在多个,但需选定其中一个作为主关键字。对于数据表中的每条记录来说,主关键字的值必须唯一。5索引(Index)为了提高访问数据库的速度,大多数数据库都使用索引。索引即对数据表中的某个或几个字段的值按某种特定的顺序进行排列。在VB中利用索引可以加快数据检索速度。6结构化查询语言(SQL)SQL(Structure Query Language)是结构化查询语言的缩写,是数据库中通用的数据查询编程语言,它是我们访问数据库的一种利器。在Visual Basic中访问数据库时,就可以利用SQL同数据库进行通讯。二、数据库的设计数据库的设计一般需要借助E- R图进行数据建模,然后把整个E-R图中的每个实体和有关的联系,都转化为关系。对每个关系再进行规范化,最后给出各个数据表完成数据库的逻辑设计,对每 个关系来说,在选定的数据库管理系统下,创建数据库、数据表以及它们之间的关系,并输入数据进行测试,完成数据库的物理设计。具体内容请读者参考相关的数 据库理论方面的书籍。11.2 Visual Basic的可视数据管理器Visual Basic 所支持的不同类型的数据库大都可以通过相应的数据库管理系统来建立,如在MS Access中可以建立.MDB的数据库。也可以使用Visual Basic下的数据库管理器来管理数据库。启动数据库管理器有两种方法:(1)在Visual Basic集成环境中,单击“外接程序”菜单下的“可视化数据管理器”命令,即可打开可视化数据管理器“VisData”窗口,如图111所示。(2)直接运行Visual Basic系统目录中的VisData.exe程序文件来启动可视化数据管理器。VisData窗口由菜单栏、工具栏、工作区窗口与状态栏组成,刚启动时其工作区窗口为空。图11.2-1可视化数据管理器窗口一、可视数据管理器的使用使用开可视化数据管理器建立默认数据库Access数据库的步骤如下:1单击“文件”菜单下的“新建”菜单项,将出现如图122所示的选择。单击数据库类型菜单中的Access将出现版本子菜单,在版本菜单中选择要创建的数据库版本后,出现如图113所示的窗口。图11.22 “文件”菜单下的“新建”子菜单图11.23 创建数据库窗口2单击“保存”按钮后,将会出现如图11.24所示的窗口。图11.24 数据库窗口与SQL语句窗口3右击数据库窗口,出现如图1.25所示的窗口。图115 数据库窗口4单击“新建表”按钮,即可打开如图11.26所示窗口。即可新建表。图11.26 表结构窗口5然后单击“添加字段”按钮,可建立各个字段的属性,最后单击“新建表”按钮,即可建立起表结构。有了表结构后就可对表进行数据的添加、修改和删除等操作。11.3 ADO数据控件一、编写一个简单数据库程序首先介绍Visual Basic所提供的两个控件ADO Data Control(简称ADODC)和DataGrid处理数据库程序的方法。ADO Data Control和DataGrid都属于ActiveX控件,它们在使用前需要先将其添加到工具箱中,以便在工程中使用。单击“工程/部件”菜单项,打开“部件”对话框,选定所需要的控件并确定,即可将其添加的工具箱中,如图11.31所示。图11.31 添加ADODC与DataGrid控件到工具箱在窗体上添加ADODC与DataGrid控件,如图118所示,然后右击ADODC控件,选择其快捷菜单下“ADODC属性”则打开如图119所示的界面。图11.32 窗体窗口图11.33 属性页窗口在上图中,单击生成“按钮”,则打开如图11.34所示的数据链接属性窗口。图11.34数据链接属性窗口在图11.34中选中“Microsoft Jet 3.51 OLE DB Provider”,单击下一步按钮,进入如图11.35所示的数据链接属性窗口。【注】Microsoft Jet 3.51OLE DB Provider只能打开Access97下的数据库,不能打开Access2000及以上版本的数据库,如要打开Access2000下的数据库,则必须选用Jet 4.0,否则系统会出错。图11.35数据链接属性窗口在图11.35中,单击“”按钮,选择所要打开的数据库文件后确定,即可单击“测试连接”按钮,测试是否连接成功。如果测试连接成功,则单击“确定”按钮后,返回图11.32。【注】如果数据库文件与工程文件保存在同一个文件夹下,则可把上图所示的文件xjgl.mdb前的字符删除,这样生成的程序,在复制到其它计算机上后不需重新对数据库进行连接即可运行。通过以上步骤,我们只是完成了ADODC控件的ConnectionString属性设置,其值如下:Provider=Microsoft.Jet.OLEDB.3.51;Data Source=e:xjglxjgl.mdb;Persist Security Info=False该属性由三个参数组成:然后把ADODC 控件的CommandType属性设置为adCmdTable,接着单击RecordSource属性,可以看到数据库xjgl.mdb下的所有数据表, 单击“基本情况表”。再选定DataGrid控件,只需把DataSource设置为ADODC控件即可,完成程序设计。运行该程序即可对数据库 xjgl.mdb下的“基本情况表”进行浏览。然后把DataGrid控件的AllowAddNew属性设置为True、AllowDelete属性设置 为True、AllowUpdate属性设置为True,再次运行该程序,即可对“基本情况表”进行添加、删除与修改数据操作,到目前为止没有书写一行代 码,就已完成程序设计。二、数据库文件与ADODC、DataGrid的关系1ADODC与数据库文件的关系数据库文件是一种格式十分复杂的文件,对任何一个程序员来说,如果想自行解析文件格式进而存取数据库中的内容,都是一件十分困难的事情。因此VB提供了ADODC控件,其功能是进行数据库文件结构分析,并且根据程序将来可能操作数据库(如:读取、写入、新增、删除等),建立必要的操作接口(包含属性、方法和事件),然后封装成为一个控件。对数据库程序而言,如果通过ADODC控件来存取数据,则不必了解数据库文件格式,只要通过ADODC所提供的操作接口,即可达到存取数据库的目的。数据库程序、ADODC控件与数据库文件三者之间的关系用下图表示:ADODC图11.36数据库文件与ADODC控件的关系2DataGrid与ADODC之间的关系虽然ADODC控件具有存取数据库数据的能力,但却没有提供显示数据的功能,如果想要显示数据库的内容,除了利用ADODC来读取数据之外,还得编写显示数据的程序。1)利用DataGrid来显示数据要使用DataGrid 来显示数据库内容必须设置好它的DataSource属性,这个属性的作用是让DataGrid控件与ADODC控件产生连接关系,也就是告诉 DataGrid控件它所存取的是哪一个ADODC所打开的数据库,接着DataGrid就会自动使用ADODC的接口,将数据库的内容显示出来。其关系 如图11.37:数据库程序图11.37 DataGrid与ADODC控件的关系2)关键属性和参数总结ADODC控件的属性及参数:(1)ConnectionString(连接字符串)属性:该属性有两个重要参数Provider和Data Source。Provider参数:Provider是OLE DB Provider的简称,其主要用途在于指定存取数据库所使用的OLE DB驱动程序。如“Microsoft Jet 3.51 OLE DB Provider”。Data Source(数据源)参数:此参数通常用来指定数据库文件的完整路径和文件名。有了此参数,ADODC控件才能打开指定的数据库文件。(2)CommandType(命令类型)属性:共有四个值:adCmdTable(数据表)、adCmdText(指令)、adCmdStoredProc(存储过程)、adCmdUnknown(未定义)。(3)RocordSoure(记录源)属性:指定确定的表。DataGrid控件的属性:(1)DataSource(数据源)属性:由于DataGrid控件并不直接存取数据库中的数据,因此必须将其属性设置成某一个ADODC控件,DataGrid控件才能具备存取数据库的能力。(2)AllowAddNew(允许新增)属性:若允许用户新增数据,须将此属性设置为True。(3)AllowDelete(允许删除)属性:若允许用户新增数据,须将此属性设置为True。(4)AllowUpdate(允许更新)属性:此属性的默认值为True。三、Visual Basic中与数据库中相关的对象就像数据库是有组织结构的一样,VB所提供的数据库对象也是有组织的,而且与数据库的组织结构有着很好的对应关系。1.Field对象与字段字段是数据库中最小的数据单位。在VB所提供的对象中,与字段对应的对象是Field,我们从Field对象的以下属性可以得知字段的相关信息:Name属性:字段的名称Value属性:字段的数据Name属性Field对象学号姓名年龄1001张三18Value属性2.Fields集合对象与数据记录对VB所提供的对象而言,Field对象的集合构成Fields集合对象,所以Fields集合对象可以视为与数据库记录对应的对象。Fields对象编号:012学号姓名年龄1001张三18Fields(0)Fields(1)Fields(2)共同构成Fields集合对象由于Fields是一个集合对象,所以可以利用Count属性得知某一个Fields集合对象中的Field对象的数目,并可利用下面的方法显示集合中的Field对象的内容,如:For i=0 to fds.Count-1fds为一个Fields集合对象Debug.Print fds(i).Name显示字段名称Debug.Print fds(i).Value显示字段数据内容Next3.Recordset对象与数据记录集合Visual Basic中与数据表对应的对象称为Recordset对象,先介绍“当前数据记录”的概念。1)由于数据库无法将整个数据表完全装入到内存中,因此便规定程序每次只能存取一条记录,此记录数据就称为“当前记录数据”。注:虽然程序每次只能存取当前记录数据,但并不表示数据库每次只装入一条记录数据,为了提高执行效率,数据库每次会装入一大段记录数据,但程序存取的动作还是以一条为单位。2)利用Recordset对象改变当前记录数据的方法程序运行后当前记录数据,将定位于第一条记录。若要改变当前记录,程序必须调用Recoedset对象的方法改变当前数据记录,方可存取每一条数据记录,进而达到存取整个数据表的功能。下表为Recoedset对象的几个常用方法。方法说明MoveNext将当前数据记录移到下一条MovePrevious将当前数据记录移到上一条MoveFirst将当前数据记录移到第一条MoveLast将当前数据记录移到末一条EOF当前数据记录是否在最后一条之后BOF当前数据记录是否在第一条之前如图11.38为Visual Basic中几个对象间的关系。11.38ADODC、Recordset、Fields、Field几个对象关系图在上图中位于下方的称为上方对象的子对象。若要存取某一个对象,必须从最上层的父对象向下指定对象的路径。如:Adodc1.RecordsetAdodc1.Recordset.FieldsAdodc1.Recordset.Fields(i)11.4 Recordset对象Recordset 对象是数据记录的集合,而数据记录又是字段的集合,因此利用Recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了,所以说 Recordset对象是存取数据库数据最重要的源头。在数据库的程序设计中,Recordset对象是最为重要的对象。一、Recordset与数据表的存取前面介绍几个改变Recordset对象的当前数据记录的方法MoveNext、MovePrevious、MoveFirst、MoveLast方法,通过这几个方法就可以存取整个数据表的数据。其关系可用图1115来表示。MoveFirstMovePreviousMoveNextMoveLastRecordset对象数据表当前记录以Recordset.Fields来存取图11.41Recordset对象与数据表之间的关系如程序:for I=0 to Adodc1.Recordset.Fields.Count-1Debug.Print Adodc1.Recordset.Fields(i).ValueNext1避免没有当前数据记录的错误利用MovePrevious、MoveNext移到记录指针时,应注意移过头现象发生。所谓移过头是指:指针位于第一天记录时,调用MovePrevious方法。指针位于最后一条记录时,调用Monenext方法。我们可以利用Recordset对象的EOF或BOF属性,来加以判断。BOF及EOB属性的应用:Adodc1.Recordset.MoveFirstWhile Not Adodc1.Recordset.Eofs=”For I=0 to Adodc1.Recordset.Fields.Count-1s=s & Adodc1.Recordset.Fields(i).Value & vbTabNextList1.Additem sAdodc1.Recordset.MoveNextWendAdodc1.Recordset.MoveNextWhile Not Adodc1.Recordset.Bofs=”For I=0 to Adodc1.Recordset.Fields.Count-1s=s & Adodc1.Recordset.Fields(i).Value & vbTabNextList1.Additem sAdodc1.Recordset.MovePreviousWend2存取字段数据的几种各数1)Adodc1.Recordset.Fields(i).Value如:Adodc1.Recordset.Fields(0).Value2)Adodc1.Recordset.Fields(字段名称).Value如:Adodc1.Recordset.Fields(“学号”).Value3.省略.Value的语句如:Adodc1.Recordset.Fields(“股票代号”)4.省略.Fields的语句如:Adodc1.Recordset(“股票代号”)5.Recordset!字段名称字段名称不能加引号【注】Recordset(“字段名称”)最容易书写。二、Recordset与数据记录的增删修改在前面我们使用DataGrid控件的AllowAdd属性和AllowDelete属性设置为True,使它具有修改、增加和删除数据的功能。但大批数据的处理使用该方法不方便,下面介绍Recordset对象修改、增加和删除数据的方法。1删除数据记录首先要将欲删除的记录置为当前记录,然后调用Recordset.Delete方法进行删除。如:Adodc1.Recordset.MoveLastAdodc1.Recordset.Delete删除多条记录时,在Delete方法后加上DoEvents语句。2修改数据记录修改数据记录分两步走,先把数据写到缓冲区,然后再写入数据库。数据写入可调用Recordset.Update方法和使用Move方法。其具体过程如下:方法一:Adodc1.Recordset(“字段名称1”)字段新值Adodc1.Recordset(“字段名称2”)字段新值Adodc1.Recordset.Update方法二:Adodc1.Recordset(“字段名称1”)字段新值Adodc1.Recordset(“字段名称2”)字段新值Adodc1.Recordset.MoveNextCancelUpdate方法:取消更新的数据除了调用Update方法或改变当前数据记录的位置来使要更新的数据立即写入到数据库中之外,Recordset对象也允许在修改数据记录之后,数据尚未写入数据库之前,将更新的数据撤消,让表中的数据恢复原状,此时调用的方法是CancelUpdate方法。3新增数据记录新增数据记录是先建立一个缓冲区,并将此缓冲区设置为当前记录,然后就可以像修改记录的数据一样,修改当前记录的内容。最后,如果确定要新增该条记录数据,就调用Update方法或移动当前数据记录将数据写入到数据库中;如果要取消新增的记录数据的操作,就调用CancelUpdate方法,其新增记录数据的语句大致如下:Adodc1.Recordset.AddNewAdodc1.Recordser(“字段名称1”)= “新的字段值1”Adodc1.Recordser(“字段名称2”)= “新的字段值2”Adodc1.Recordset.Update 或Adodc1.Recordset.CancelUpdate三、Recordset与数据记录的检索1检索数据记录的方法1)Find方法格式:Recordset.Find Criteria,SkipRows,SearchDirection,Start参数1:Criteria:检索记录数据的表达式。如:“语文85”。该参数的变化相当多,稍后进一步说明。参数2:SkipRows:跳过几条记录开始检索。可省略,若省略其默认值为0,表示从第一条记录开始。参数3:SearchDirection:检索的方向。可以是adSearchForward或adSearchBackward,可以省略,若省略表示向下检索。参数4:Start:开始检索的位置。可省略,若省略表示从当前数据记录开始检索。2)检索结果与当前记录如果调用Find方法后找到符合要求的记录数据,则当前记录将移至被找到的记录,否则当前记录数据变成不存在。可利用Recordset对象的BOF、EOF属性进行判断。2检索数据记录的表达式在Find方法的参数中,变化最多的是Criteria参数,在此作进一步的讨论。1)表达式的基本格式“字段名称比较运算符比较的数据”2)表达式的字段名称表达式字段名称比较符号比较的数据(1)表达式中的“字段名称”必须是数据表中已存在的字段名称。(2)如果字段名称中含有空格字符,则字段名称前后必须加 。3)表达式之“比较的数据”表达式字段名称比较符号比较的数据(1)比较的数据是常量比较的数据按数据类型可分为“数值”、“日期时间”和“字符串”三种类型。数据类型表达式数值“语文85”字符串“姓名张三”日期数据“出生日期#1975/7/1#”(2)比较的数据是变量设v为数值:“字段名称比较符号” & vv为日期数据:“字段名称比较符号 #” & v & “#”v为字符串:“字段名称比较符号 ” & v “”4)表达式之“比较符号”表达式字段名称比较符号比较的数据VB程序中的比较符号包含=、=、=、=等运算符,也可使用and、or、not逻辑运算符和Like近似比较运算符。(1)字符串的近似(Like)选取select * from 成绩 where 姓名 like 王%(2)与_的区别2)其它的where筛选表达式除使用以上运算符外,还可使用以下一些运算符:(1)where 字段名称 between 值1 and 值2where 字段名称 not between 值1 and 值2(2)where 字段名称 in(值1,值2,)集合运算(3)where 字段名称 is Null与where 字段名称 is not Null如果某一笔记录的某一字段并未输入任何数据,那么该字段就为Null字段。上面的筛选表达式可以挑出某一字段为Null或非Null的记录数据。3)VB函数的使用其实VB函数也可用于where筛选表达式,如:select * from 成绩单 where mid(姓名,2,1)小3基本语法三:selectfromorder by 字段列表1)单字段排序Order By子句主要对最终输出结果进行排序,这有助于数据的浏览与查阅。如:Select * from 成绩 order by 语文2)多字段排序如:Select * from 成绩 order by 语文,英语,数学3)排序方式asc(默认)升序deac降序4)select top:限定选取数据记录的条数如:select * from 成绩 order by 语文+英语+数学 descselect top 10 * from 成绩 order by 语文+英语+数学 desc取前十条select top 10 percent * from 成绩 order by 语文+英语+数学 desc 取百分比三、动态执行Select语句的技巧前面已经介绍利用Recordset 对象的Find方法进行数据的查找。对SQL而言,“where 筛选表达式”中的“筛选表达式”,与Find方法的“搜寻数据的表达式”在功能上十分类似。但Find方法对数据进行逐条比较,数据量较大时,效率很低。 因此,可先用SQL语句筛选符号条件的记录,然后再进行Find方法查找。1动态执行Select语句的技巧要想动态执行某一Select语句,程序必须如下:Adodc1.CommandType=adCmdTextAdodc1.RecordSource=Select语句Adodc1.Refresh2动态组合SQL语句的注意事项字符型数据:select * from 数据表 where 字段名称=” & Text1.Text & “”日期型数据:select * from 数据表 where 字段名称= ” & Text1.Text & “ ”数值型数据:select * from 数据表 where 字段名称=” & Text1.Text3Where筛选表达式与Find表达式的差异1.Where筛选表达式可使用逻辑运算符and、or、not,Find表达式不能使用逻辑运算符。2.Where筛选表达式中的BetweenAnd和Is Null/Is Not Null均无法在Find中使用。3.Where筛选表达式中可以使用VB函数,而Find表达式中是不能使用的。11.7ADO(Active Data Objects)对象模型我们前面一直使用ADODC和其它数据识别控件来设计数据库程序。为了打好数据库基础,Visual Basic数据库最核心的对象群-Active Data Objects(简称ADO)就是我们必须要掌握的,如图1119。图11.7-1ADO对象结构图一、ADO的首次使用对比图11.38中可以看出ADO比ADODC控件复杂一点,实际上它们的概念是一致的。在ADO对象结构图中可以发现一个熟悉的名字Recordset,它与我们前面使用的Recordset(ADODC的属性)是相同的对象。先看一个ADO打开数据库的例子:Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub Form_Load()Dim ConnStr As StringConnStr = Provider=Microsoft.Jet.OLEDB.3.51; & _Data Source=f:xjglxjgl.mdbconn.Open ConnStrrs.CursorLocation = adUseClientrs.Open 基本情况表, conn, adOpenKeyset, adLockPessimisticEnd SubPrivate Sub Command1_Click() 显示 Recordset 的所有记录数据Dim S As String, i As Integerrs.MoveFirstList1.ClearWhile Not rs.EOFS=For i = 0 To rs.Fields.Count - 1S=S & rs.Fields(i).Value & vbTabNextList1.AddItem Srs.MoveNextWendEnd Sub在以上程序中,使用了MoveFirst、EOF、MoveNext方法和Fields子对象,使用这些方法和Fields子对象的对象不再是Adodc1.Recordset对象,而是rs对象。1打开数据库(表)我们再看一下上面打开数据库的语句:ConnStr = Provider=Microsoft.Jet.OLEDB.3.51; & _Data Source=e:xjglxjgl.mdbconn.Open ConnStrrs.CursorLocation = adUseClientrs.Open 基本情况表,conn,adOpenKeyset,adLockPessimistic其主要由三部分组成:Provider参数:用来指定OLE DB驱动程序。DataSource参数:用来指定数据库的来源,它与Provider参数合起来构成“连接字符串”。股票行情表:出现在rs.Open方法的参数,用来指定想要打开的数据表。结论:通过比较我们发现前面两个例子打开数据库的方法几乎是一样的,ADODC控件仍调用ADO所提供的方法来打开数据库(表)。2使用ADO对象之前在使用ADO对象之前,必须先利用VB菜单的“工程/引用”来引用“Microsoft Active Data Objects 2.0 Library”,如图1120所示,然后ADO对象群中Connection、Recordset、Command、Fields等对象才会成为可以引用的对象。否则,类似下面的语句:dim conn as new ADODB.Connectiondim rs as New ADODB.Recordset都会产生“用户定义类型未定义”的错误,因为“Connection”和“Recordset”都是定义在“Microsoft Active Data Objects 2.0 Library”中的。如果没有事先将其引用的话,VB将无法辨识它们。图11.72Microsoft Active Data Objects 2.0 Library的引用3使用ADO的基本概念从以上例子中我们可以看到,使用ADODC比使用ADO要简单得多,但使用ADO比使用ADODC专业的多。“对象类别”的引用及表示法:语句格式:dim rs as ADODB.Recordset其中,rs称为“对象变量”,Recordset称为“对象类别名称”,ADODB则称为“对象类别模块”,整个语句被解释为“建立一个Recordset类别的对象变量、而Recordset对象类型是来自ADODB对象类别模块的”。注意:ADODB正是“Microsoft Active Data Objects 2.0 Library”在程序设计中的简称。二、Connection对象:操作数据库的源头ADO对象群以Connection对象为源头,通过Connection对象才可以打开其下面的Recordset及Command对象,进而对数据库进行操作。1Connection对象的建立及打开1)Connection对象的建立要使用某一对象时,必须经过“定义”和“建立”两个步骤。即:Dim conn as ADODB.Connection定义一个Connection类别的对象变量Set conn=New ADODB.Connection建立对象,并指定给conn对象变量也可合二为一:Dim conn as New ADODB.Connection2)Connection对象的打开以上语句只是建立了Connection对象,还无法使用。要想使用Connection对象,就必须指定OLE DB Provider和Data Source两个参数,然后再调用Open方法。如:Connstr=“Provider=Microsoft.Jet.OLEDB3.51;” & “Data Source=f:xjglxjgl.mdb”Conn.Open Connstr2数据表的打开与Connection对象打开数据表可用以下语句Dim conn as New ADODB.ConnectionConnstr=“Provider=Microsoft.Jet.OLEDB3.51;” & “Data Source= f:xjglxjgl.mdb”Conn.Open ConnstrRs.CursorLocation=adUseClientRs.Open “基本情况”,conn,adOpenKeyset,adLockPessimistic3Connection对象的关闭及释放当程序不再使用数据库时,可以调用Connection对象的Close方法将其关闭。1)Connection对象的关闭Dim conn as New ADODB.ConnectionConnstr=“Provider=Microsoft.Jet.OLEDB3.51;” & “Data Source= f:xjglxjgl.mdb”Conn.Open ConnstrRs.CursorLocation=adUseClientRs.Open “基本情况”,conn,adOpenKeyset,adLockPessimisticconn.Close2.Connection对象的归还Connection对象一经关闭,Connection对象和Recordset对象就不可使用,但Connection对象仍然存在,还会占有一定的系统资源,如果想完全释放,则必须调用以下语句:Set conn=Nothing总结:从Connection对象的建立、打开数据库、打开数据表、关闭数据库到归还Connection对象所占有的系统资源,其完整过程如下:步骤一:建立Connection对象dim conn as New ADODB.Connection步骤二:打开数据库conn.Open ConnStr步骤三:打开数据表Rs.CursorLocation=adUseClientRs.Open “基本情况”,conn,adOpenKeyset,adLockPessimistic步骤四:关闭数据库conn.Close步骤五:归还Connection对象所占用的系统资源Set conn=Nothing一般会省略第四步和第五步,因为程序关闭时,该程序所打开的数据库会自动关闭,而Connection对象所占用的系统资源也会自动释放给系统。三、Command对象与SQL语句的执行Command对象也是ADO对象群的一员。Command对象主要是专门用来执行SQL语句的。我们先来回忆一下前面介绍的SQL语句的执行过程:使用ADODCAdodc1.RecordSource=SQL语句Adodc1.CommandType=adCmdTextAdodc1.Refresh使用Recordset.Open方法执行SQL语句rs.Open SQL语句,conn,adopenDynamic,adLockOptimistic显然,上面两种方法都没有使用Command对象,但一样执行SQL语句。1Command对象执行SQL语句Dim conn As New ADODB.ConnectionDim cmd As New ADODB.CommandDim rs As New ADODB.RecordsetSet cmd.ActiveConnection = connSQL = Select * From 基本情况表Where 姓名 Like 李%cmd.CommandText = SQLSet

温馨提示

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

评论

0/150

提交评论