最新-《Visual-Basic程序设计项目化教程》项目14-ADO数据库访问技术的应用-课件_第1页
最新-《Visual-Basic程序设计项目化教程》项目14-ADO数据库访问技术的应用-课件_第2页
最新-《Visual-Basic程序设计项目化教程》项目14-ADO数据库访问技术的应用-课件_第3页
最新-《Visual-Basic程序设计项目化教程》项目14-ADO数据库访问技术的应用-课件_第4页
最新-《Visual-Basic程序设计项目化教程》项目14-ADO数据库访问技术的应用-课件_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic程序设计项目化教程主编管小清郭贺彬VisualBasic程序设计项目化教程主编管小1项目十四:ADO数据库访问技术的应用项目功能描述:本项目主要是了解ADO的主要功能与特性,ADO对象模型简介及ADO的编程模型。掌握ADODC控件的主要属性、常用方法及常用事件。掌握数据绑定控件的主要属性、常用方法及常用事件。掌握在VisualBasic中使用ADO对象,进行非编程式访问数据库和编程式访问数据库项目十四:ADO数据库访问技术的应用项目功能描述:项目十四:ADO数据库访问技术的应用项目主要知识点:1.关于ADO2.ADODC控件3.数据绑定控件4.在VisualBasic中使用ADO对象项目实施步骤:阅读基础知识实例操作完成思考与练习题项目十四:ADO数据库访问技术的应用项目主要知识点:14.1基础知识概述14.1.1关于ADO1.ADO主要功能与特性ADO(ActiveXDataObject,Active数据对象)是基于OLEDB技术而设计的。是Microsoft提供的一种面向对象,与语言无关的基于应用程序层的数据访问接口。它是DAO/RDO的后继产物。它主要特性:易于使用、可以访问多种数据源、访问速度快且效率高、易于Web应用、技术编程接口丰富、低内存支出和占用磁盘空间较少。ADO访问数据是通过OLEDB来实现的,OLEDB不仅能够以SQLServer、Oracle、Access等数据库文件为访问对象,还可对Excel表格、文本文件、图形文件、电子邮件等各种各样的数据通过统一的接口进行存取。ADO与OLEDB的关系如图14-1所示:14.1基础知识概述14.1.1关于ADO14.1基础知识概述图14-1ADO与OLEDB的关系图14-1ADO与OLEDB的关系14.1基础知识概述图14-1ADO与OLEDB14.1基础知识概述2.ADO对象模型ADO集中了DAO和RDO的优点,且不像DAO和RDO那样依赖于对象层次。ADO对象模型定义了一个可编程的分层对象集合,ADO模型主要由七个对象成员Connection(连接)、Command(命令)、RecordSet(记录集)、Error(错误)、Parameter(参数)、Field(字段)和Property(属性)以及四个集合对象Errors、Parameters、Fields、Properties所组成。每个Connection、Command、Recordset和Field对象都有Properties集合。它们之间的关系如图14-2所示:网图14-2ADO对象模型关系图14-2ADO对象模型关系14.1基础知识概述2.ADO对象模型图14-2A14.1基础知识概述(1)Connection对象用于管理与数据库的连接,通过连接可从应用程序访问数据源,包括打开和关闭连接以及运行SQL命令等,它保存诸如指针类型、连接字符串、查询超时、连接超时和缺省数据库这样的连接信息。它包含了关于目标数据库数据提供程序的相关信息。(2)Command对象包含关于某个命令,例如查询字符串、参数定义等的信息。(3)Recordset对象用来存储数据操作返回的记录集。Recordset对象只代表一个记录集,这个记录集可以是一个数据库中的表,或者是Command对象的执行结果返回的记录集。在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。Recordset对象用于指定行、移动行、添加、更改、删除记录。14.1基础知识概述(1)Connection对象14.1基础知识概述(4)Field对象Field对象对应于数据库表的字段或SQL查询语句Select关键字之后跟随着的域,宽限包含记录集中数据的某单个列的信息。(5)Error对象包含数据提供程序出错时的扩展信息。(6)Parameter对象Parameter对象用于管理基于参数化查询或存储过程的Command对象相关联的某个参数或自变量的信息,这类Command对象有一个包含其所有Parameter对象的Parameters集合。(7)Property对象包含某个ADO对象的提供程序定义的特征。掌握其中的Command、Connection、Recordset对象就可以实现基本的数据库操作。14.1基础知识概述(4)Field对象14.1.2ADO的编程模型ADO编程模型描述了使用ADO对象进行编程所必须的几个重要步骤:1.连接数据源利用Connection对象的Open方法可以创建一个数据源的连接。语法:Connection对象.OpenConnectionString,UserID,PassWord,OpenOptions其中:Connection对象为定义的Connection对象的实例;ConnectionString为可选项,包含了连接的数据库的信息;

UserID可选项,包含建立连接的用户名;

PassWord为可选项,包含建立连接的用户密码;14.1.2ADO的编程模型ADO编程模型描述了使用ADO14.1.2ADO的编程模型2.打开记录集对象(1)方法一:语法:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options

其中:Recordset为所定义的记录集对象的实例。

Source可选项,指明了所打开的记录源信息。ActiveConnection可选项,合法的已打开的Connection对象的变量名或者是包含ConnectionString参数的字符串。

CursorType可选项,确定打开记录集对象使用的指针类型。

LockType可选项,确定打开记录集对象使用的锁定类型。14.1.2ADO的编程模型2.打开记录集对象14.1.2ADO的编程模型(2)方法二:语法:SetRecordset=Connection.Execute_(CommandText,RecordsAffected,Options)

其中:CommandText一个字符串,返回要执行的SQL命令、表名、存储过程或指定文本。

RecordsAffected可选项,Long类型值,返回操作影响的记录数。Options可选项,Long类型值,指明如何处理CommandText参数。打开Recordset对象之后,我们就可以使用它的addnew、delete、update、movenext、find等方法了。14.1.2ADO的编程模型(2)方法二:14.1.2ADO的编程模型3.添加记录添加新记录的AddNew方法语法:Recordset.AddNewFields,Values

其中:Recordset为记录集对象实例

Fields为一个字段名,或者是一个字段数组。

Values为给要加信息的字段赋的值,如果Fileds为一个字段名,那么Values应为一个单个的数值。假如Fileds为一个字段数组,那么Values必须也为一个个数,类型与Fields相同的数组。使用AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中。14.1.2ADO的编程模型3.添加记录14.1.2ADO的编程模型4.修改记录集用SQL语句将要修改的字段的一个数据找出来重新赋值。5.删除记录的Delete方法语法:Recordset.DeleteAffectRecords其中:AffectRecords参数是确定Delete方法作用的方式的。它的取值如下:adAffectCurrent只删除当前的记录。

adAffectGroup删除符合Filter属性设置的那些记录。为了一次能删除一组数据,应设置Filter属性。6.查询记录(1)方法一:使用连接对象的Execute方法执行SQL命令,返回查询记录集。(2)方法二:使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集。14.1.2ADO的编程模型4.修改记录集14.1.2ADO的编程模型7.断开连接在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序.使用的方法为:Close方法。语法:ADO对象.Close14.1.2ADO的编程模型7.断开连接

14.2ADODC控件14.2.1ADODC控件在VB中,使用ADO访问数据库主要有两种方式,一种是使用ADO数据控件,通过对控件的绑定来访问数据库中的数据,即非编程访问方式;另一种是使用ADO对象模型,通过定义对象和编写代码来实现对数据的访问,即编程访问方式,以下我们先介绍使用ADODC控件对数据库进行访问。1.ADODC控件几个重要的与数据库有关的属性,如表14-1所示:14.2ADODC控件14.2.1ADODC控件

14.2ADODC控件表14-1ADO控件属性CommandType 指示命令类型。取值为:1adCmdTextSQL——语句2adCmdTable——表4adCmdStoredProc——存储过程8adCmdUnknown——其他类型ConnectionString支持连接字符串的OLEDB提供程序(打开属性页--通用)。ConnectionTimeou 在中止前等待打开连接的时间量(单位秒)。CursorLocation决定时使用服务器端游标还是客户端游标(使用哪个游标引擎)。取值为:2adUseServer3adUseClientCursorType 设置用于下一级Recordset的游标类型。取值为:1adOpenKeyset2adOpenDynamic3adOpenStaticPassword 密码-支持密码的OLEDB提供程序。(打开属性页--身份验证)RecordSourceRecordset源(adCommandText=SQL或者其它命令'语法',adCommandTable=表名称。)(打开属性页--记录源)UserName 用户名称-支持用户名称的OLEDB提供程序14.2ADODC控件表14-1ADO控件属性

14.2ADODC控件2.ADODC控件常用的方法(1)Refresh方法。该方法用于刷新与ADODC控件连接的记录集数据。(2)UpDateRecord方法通过此方法可以将数据绑定控件上的当前内容写入到数据库。(3)Close方法Close方法主要用于关闭打开的对象及相关对象。3.ADODC控件的事件ADODC控件的事件分为两种类型即:Will事件和Complete事件。其中Will事件是在操作开始之前调用,这时可能检查或修改操作参数,并且可以决定是取消操作还是允许完成操作。而Complete事件是在操作完成之后调用。14.2ADODC控件2.ADODC控件常用的方法

14.2ADODC控件(1)WillMove事件WillMove事件在执行更改Recordset中的当前记录操作之前调用。而MoveComplete事件则是在执行更改Recordset中的当前记录操作之后被调用。执行Recordset.Open、Recordset.MoveNext、Recordset.Move、Recordset.MoveLast、Recordset.MoveFirst、Recordset.MovePrevious、Recordset.Bookmark、Recordset.AddNew、Recordset.Delete、Recordset.Requery等方法时触发。14.2ADODC控件(1)WillMove事件

14.2ADODC控件(2)WillChangField事件和FieldChangComplete事件

WillChangeField在Recordset对象中Field属性值更改之前调用。而FieldChangeComplete在Recordset对象中Field属性值更改之后调用。执行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.UpdateBatch、Recordset.CancelBatch等方法时触发。(3)WillChangRecordSet事件

WillChangRecordSet发生在对Recordset对象进行操作之前,而RecordSetChangComplete发生对Recordset对象进行操作之后。14.2ADODC控件(2)WillChangFiel14.2.2数据绑定控件1.数据绑定简述ADODC控件只能连接数据库,产生记录集。但不能显示记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。数据库记录集数据绑定图14-3数据绑定与数据库和记录集关系图14-3数据绑定与数据库和记录集关系14.2.2数据绑定控件1.数据绑定简述数据库记录集数据绑14.2.2数据绑定控件数据绑定控件具有DataSource、DataField属性的控件均可作为绑定控件(2)常用绑定控件ComBox,Label,TextBox等控件是较为常用的数据绑定控件。14.2.2数据绑定控件数据绑定控件14.2.2数据绑定控件(3)专门与ADO控件绑定的ActiveX控件①DataList–数据列表控件我们在下一节将专门介绍ADO控件与DataList控件结合显示数据。②DataGrid–数据网格控件我们在下一节将专门介绍ADO控件与DataGrid控件结合显示数据。③DataCombo–数据组合控件(4)高级数据绑定控件MicrosoftHierarchicalFlexGfid–分层式网格控件MicrosoftChart–图表控件以上控件中数据网格控件和图表控件可以绑定到整个记录集,而其他控件只能绑定到记录集的某一个字段。14.2.2数据绑定控件(3)专门与ADO控件绑定的Act14.2.2数据绑定控件2.数据绑定方法(1)添加控件首先添加ADODC控件及绑定控件添加到窗体上。(2)设置ADODC控件属性设置ADODC控件的ConnectionString,RecordSource,Password,UserName属性,连接数据库。(3)设置绑定控件的DataSource属性将绑定控件的DataSource属性设为ADODC控件的名称。(4)设置绑定控件的DateField属性将绑定控件的DateField属性设为要显示的字段名称。完成上述步骤后,即可通过绑定控件将数据显示。14.2.2数据绑定控件2.数据绑定方法14.3在VisualBasic中使用ADO对象14.3.1非编程访问方式我们以SQLServer2000数据库为例。使用ADODC控件,快速创建数据绑定控件和数据提供者之间的连接。其中数据绑定控件可以是任何具有DataSource属性的控件;数据提供者可以是任何符合OLEDB规范的数据源。14.3在VisualBasic中使用ADO对象14.3.14.3.1非编程访问方式ADODC控件和DataList控件应用实例(1)建立login数据库首先启动SQLServer2000企业管理器,建立一个login的数据库,在login数据库中建立“用户信息”数据表,如图14-4所示:图14-4SQLServer2000企业管理器建立数据库和数据表14.3.1非编程访问方式ADODC控件和DataList控14.3.1非编程访问方式(2)添加ADODC控件ADODC控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”→“部件”菜单选项,选中“MicrosoftADODataControl6.0(OLEDB)”后,按“确定”,此时ADO数据控件便出现在工具箱中,如图14-5所示:图14-5添加ADODC控件14.3.1非编程访问方式(2)添加ADODC控件图1414.3.1非编程访问方式(3)设置ADODC连接属性将ADODC控件添加到窗体上,其默认的名称属性为“Adodc1”。右击ADODC控件,选“ADODC属性”,弹出“属性页”对话框,如图14-6所示:图14-6设置ADODC控件ConnectionString属性14.3.1非编程访问方式(3)设置ADODC连接属性图点击弹出属性页面,选择“通用”,选中“使用连接字符串”(也可以选择“ODBC数据源名称”),再单击“生成”按钮,弹出“数据链接属性”对话框。选择“提供程序”选项卡,在列表中选择“MicrosoftOLEDBProviderForSQLSERVER”选项,如图14-7所示,再单击“下一步”按钮。图14-7选择OLEDB提供程序14.3.1非编程访问方式点击弹出属性页面,选择“通用”,选中“使用连接字符14.3.1非编程访问方式指定服务器的名称和登录信息并选择本连接要使用的数据库文件。单击“测试连接”按钮以确定连接是否正常。若得到测试成功的消息,单击“确定”按钮以继续,如图14-8所示。服务器名称:机器名\实例名图14-8设置数据连接属性14.3.1非编程访问方式指定服务器的名称和登录信息并选择本14.3.1非编程访问方式(4)设置AD0DC数据源属性在“属性页”对话框中选择“记录源”选项卡,在命令类型下拉列表中选择“2-adCmdTable”选项,在表或存储过程名称下拉列表中选择数据表“用户信息”。(若选择的命令类型为“1-adCmdText”,则可在命令文本框中输入SQL查询语句,SELECT*from用户信息),然后单击“确定”按钮,如图14-9所示:图14-9设置记录源14.3.1非编程访问方式(4)设置AD0DC数据源属性图14.3.1非编程访问方式(5)在窗体上添加数据绑定控件我们使用DataList数据绑定控件。DataList控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”→“部件”菜单选项,选中“MicrosoftDataListControl6.0(SP3)”后,按“确定”,此时DataList控件便出现在工具箱中。图14-9将添加DataLIst控件添加到工具箱14.3.1非编程访问方式(5)在窗体上添加数据绑定控件图14.3.1非编程访问方式(6)设置DataList属性将DataList与ADODC1进行绑定,如图14-10所示:图14-10设置DataList属性14.3.1非编程访问方式(6)设置DataList属性图14.3.1非编程访问方式(7)运行程序将数据表信息通过绑定控件DataList显示,如图14-11所示:图14-11在DataList控件中显示用户名14.3.1非编程访问方式(7)运行程序图14-1114.3.1非编程访问方式2.ADODC控件和DataGrid控件应用实例(1)建立login数据库首先启动SQLServer2000企业管理器,建立一个login的数据库,在login数据库中建立“用户信息”数据表。(2)添加ADODC控件并设置属性方法同ADODC控件和DataList控件应用实例,不再详细介绍。(3)添加DataGrid控件在窗体上添加ADO专用绑定控件—DataGrid控件。DataGrid控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”→“部件”菜单选项,选中“MicrosoftDataGridControl6.0(SP6)”后,按“确定”,此时DataList控件便出现在工具箱中,如图14-12所示:图14-12添加DataGrid控件14.3.1非编程访问方式2.ADODC控件和DataGri14.3.1非编程访问方式设置DataGrid属性DataGrid控件DataSource属性如图14-13所示:图14-13设置DataGrid的DataSource属性14.3.1非编程访问方式设置DataGrid属性图114.3.1非编程访问方式②进行数据绑定数据:右键单击DataGrid控件,选择“检索字段”,进行数据绑定,也可以选择“属性DataField”进行绑定。(4)运行程序运行程序后,将数据表的信息通过数据绑定控件DataGrid显示出来,如图14-14所示:图14-14在DataGrid控件中显示数据表“用户信息”14.3.1非编程访问方式②进行数据绑定数据:图14-114.3.1非编程访问方式通过ADODC控件与DataList控件及ADODC控件与DataGrid控件结合,可实现SQLServer数据库login中“用户信息”表中数据的浏览功能。ADODC控件还可以和TextBox控件、DataCombo控件结合,显示数据表数据。14.3.1非编程访问方式通过ADODC控件与DataLis14.3.1编程访问方式编程访问方式是使用ADO对象模型访问数据库。为了能够在程序中使用ADO对象编程,在连接数据库前,需要在VisualBasic6.0菜单“工程”→“引用”中选择MicrosoftActiveXDataObjects2.8Library组件。运用ADO对象模型的主要元素:Connection(连接)中的ConnectionString属性进行连接,ConnectionString为可读写string类型,指定一个连接字符串,告诉ADO如何连接数据库。14.3.1编程访问方式编程访问方式是使用ADO对象模型访14.3.1编程访问方式1.定义ADO对象用于设置打开连接和产生记录集(1)声明语句如下:

DimconnAsNewADODB.Connection‘定义连接对象

DimrsAsNewADODB.Recordset‘定义记录集对象(2)创建对象实例定义ADO对象实例,声明了对象以后,还需要创建对象实例,否则不能使用。以下是两条重要语句:Setconn=NewADODB.Connection‘创建conn对象Setrs=NewADODB.Recordset‘创建rs对象14.3.1编程访问方式1.定义ADO对象用于设置打开连接和14.3.1编程访问方式2.数据库连接设置Connection对象实例ConnectionString属性连接到数据库。有两种方法:有源数据库连接和无源数据库连接(1)有源数据库连接有源数据库连接首要任务是要注册数据源名称(DSN),通过配置ODBC环境,进行数据源的注册,然后才能对数据源进行连接、访问和操作。以连接数据源login为实例进行操作:14.3.1编程访问方式2.数据库连接14.3.1编程访问方式①启动ODBC在WindowsXP点击“开始”→“控件面板”→“性能和维护”→管理工具,出现如下界面:图14-15ODBC界面14.3.1编程访问方式①启动ODBC图14-15O14.3.1编程访问方式②添加“用户DSN”双击“数据源(ODBC)”,出现如下界面,选择“用户DSN”,点击“添加”,如图14-16所示:图14-16添加用DSN14.3.1编程访问方式②添加“用户DSN”图14-1614.3.1编程访问方式③选择数据源的驱动程序数据源驱动程序选择“SQLServer”,如图14-17所示:图14-17选择数据源的驱动程序14.3.1编程访问方式③选择数据源的驱动程序图14-114.3.1编程访问方式④数据源命名给数据源命名为Login,如图14-18所示:服务器名称:机器名\实例名图14-18给数据源命名14.3.1编程访问方式④数据源命名服务器名称:机器名\实例14.3.1编程访问方式注:服务器名根据实际情况填写:机器名\实例名⑤测试数据源:图14-19数据源测试14.3.1编程访问方式注:服务器名根据实际情况填写:机器名14.3.1编程访问方式(2)无源数据库连接与有源数据库连接的区别在于不需要配置ODBC,不使用DSN。①提供连接所需要的特定信息包括服务器名称:“机器名\实例名”用户名:“sa”口令可为空与数据库“login”建立的连接代码如下:conn.ConnectionString="driver={sqlserver};_server=机器名\实例名;UerId=sa;pwd=;Database=login"②打开连接对象设置好连接属性后,就可以打开连接对象了。代码如下:

conn.Open 这样,VB和后台SQLServer数据库的连接就创建好了。14.3.1编程访问方式(2)无源数据库连接14.3.3实例操作1.有源数据库连接(1)创建“标准EXE”工程,工程命名为login(2)引用“MicrosoftActiveXDataObject2.0Library”(3)创建模块文件选择“工程”→“添加模块”,在模块中输入代码:PublicconnAsNewADODB.Connection‘标记新连接对象PublicrsAsADODB.Recordset‘标记新记录集对象14.3.3实例操作1.有源数据库连接14.3.3实例操作(4)创建登录窗体界面选择“工程”→“添加窗体”,在VB窗体中添加两个标签控件、两个文件框控件和一个命令按钮控件,窗体界面如图14-20:图14-20登录窗体界面14.3.3实例操作(4)创建登录窗体界面图14-2014.3.3实例操作有源数据库连接主要代码DimconnAsNewADODB.Connection‘定义连接对象DimrsAsADODB.Recordset‘定义记录集对象①窗体加载代码:PrivateSubForm_Load()Setconn=NewADODB.Connection‘设置conn实例对象Setrs=NewADODB.Recordset‘设置rs实例对象conn.ConnectionString="DSN=login;User_ID=sa;Password=;database=login;"conn.ConnectionTimeout=30conn.OpenEndSub14.3.3实例操作有源数据库连接主要代码14.3.3实例操作其中有源数据库连接:DSN数据源是“Login”用户名是“sa”口令为空与数据库“login”建立的连接代码:conn.ConnectionString="DSN=Login;UserID=sa;PWD=;database=login;"②命令按钮代码:PrivateSubCommand1_Click()rs.Open"select*from用户信息where用户名='"&Text1.Text&"'_and密码='"&Text2.Text&"'",conn,adOpenstate,adLockOptimistic,_adCmdText14.3.3实例操作其中有源数据库连接:14.3.3实例操作Ifrs.EOF=TrueThenMsgBox"请重新输入学号或密码!"Text1.Text=""Text2.Text=""Text1.SetFocusElseMsgBox"登录成功"EndIfrs.CloseUnloadMeEndSub14.3.3实例操作Ifrs.EOF=TrueThe14.3.3实例操作(6)程序运行程序运行后,用户名与密码输入正确后,登录成功,如图14-21所示:图14-21登录成功界面14.3.3实例操作(6)程序运行图14-21登录成功14.3.3实例操作2.无源数据库连接与有源数据库连接不同的是无DSN,无源数据库连接代码:conn.ConnectionString=“Provider=SQLOLEDB.1;PersistSecurity_Info=False;Server=机器名\实例名;_UserID=sa;Password=;DataBase=login“(1)窗体加载主要代码为:PrivateSubForm_Load()Setconn=NewADODB.ConnectionSetrs=NewADODB.Recordsetconn.ConnectionString="Provider=SQLOLEDB.1;PersistSecurity_Info=False;Server=机器名\实例名;UserID=sa;_Password=;DataBase=login;"conn.ConnectionTimeout=30conn.OpenEndSub(2)其它代码与有源数据库连接相同14.3.3实例操作2.无源数据库连接14.4结束语14.4.1ADO数据控件和ADO对象模型比较1.连接数据库比较ADO数据控件和ADO对象模型都为我们提供了数据库访问的接口技术,使用ADO控件在建立连接、选择数据表时,不需要创建连接对象和记录集对象,ADO控件几乎封装了相应代码的所有功能,只需设置好与之相关的属性、方法和事件,操作简单。使用ADO对象模型,通过定义对象、编写代码来实现数据库的访问,能很好地控制各种操作,具备更多的灵活性和更强大的功能。14.4结束语14.4.1ADO数据控件和ADO对象模型14.4结束语2.应用领域比较ADO控件虽然操作简单,但灵活性较差,不利于对大型数据库访问,一个ADO控件只能在同一数据源上打开一个记录集,在一个应用中若涉及多个记录集,则需要建立多个ADO控件。而使用ADO对象模型,便于实现对象重用、封装等技术,也利于事件处理,提高数据操作效率,特别是对海量数据的处理。在开发应用程序时,应根据数据库应用程序的特点来选择具体的访问方式。14.4结束语2.应用领域比较14.5思考题与练习题14.5.1思考题1.如何实现ADODC控件与DataCombo控件结合2.如何实现ADODC控件与TextBox控件结合3.编程访问数据库中如何理解无源数据库连接14.5思考题与练习题14.5.1思考题14.5.2练习题1.设计学生信息窗体。使用TextBox绑定控件,窗体上添加4个标签控件,4个文本框控件,一个ADODC控件,如图14-22所示:图14-22ADODC控件与TextBox绑定控件结合显示数据14.5.2练习题1.设计学生信息窗体。使用TextBoVisualBasic程序设计项目化教程主编管小清郭贺彬VisualBasic程序设计项目化教程主编管小58项目十四:ADO数据库访问技术的应用项目功能描述:本项目主要是了解ADO的主要功能与特性,ADO对象模型简介及ADO的编程模型。掌握ADODC控件的主要属性、常用方法及常用事件。掌握数据绑定控件的主要属性、常用方法及常用事件。掌握在VisualBasic中使用ADO对象,进行非编程式访问数据库和编程式访问数据库项目十四:ADO数据库访问技术的应用项目功能描述:项目十四:ADO数据库访问技术的应用项目主要知识点:1.关于ADO2.ADODC控件3.数据绑定控件4.在VisualBasic中使用ADO对象项目实施步骤:阅读基础知识实例操作完成思考与练习题项目十四:ADO数据库访问技术的应用项目主要知识点:14.1基础知识概述14.1.1关于ADO1.ADO主要功能与特性ADO(ActiveXDataObject,Active数据对象)是基于OLEDB技术而设计的。是Microsoft提供的一种面向对象,与语言无关的基于应用程序层的数据访问接口。它是DAO/RDO的后继产物。它主要特性:易于使用、可以访问多种数据源、访问速度快且效率高、易于Web应用、技术编程接口丰富、低内存支出和占用磁盘空间较少。ADO访问数据是通过OLEDB来实现的,OLEDB不仅能够以SQLServer、Oracle、Access等数据库文件为访问对象,还可对Excel表格、文本文件、图形文件、电子邮件等各种各样的数据通过统一的接口进行存取。ADO与OLEDB的关系如图14-1所示:14.1基础知识概述14.1.1关于ADO14.1基础知识概述图14-1ADO与OLEDB的关系图14-1ADO与OLEDB的关系14.1基础知识概述图14-1ADO与OLEDB14.1基础知识概述2.ADO对象模型ADO集中了DAO和RDO的优点,且不像DAO和RDO那样依赖于对象层次。ADO对象模型定义了一个可编程的分层对象集合,ADO模型主要由七个对象成员Connection(连接)、Command(命令)、RecordSet(记录集)、Error(错误)、Parameter(参数)、Field(字段)和Property(属性)以及四个集合对象Errors、Parameters、Fields、Properties所组成。每个Connection、Command、Recordset和Field对象都有Properties集合。它们之间的关系如图14-2所示:网图14-2ADO对象模型关系图14-2ADO对象模型关系14.1基础知识概述2.ADO对象模型图14-2A14.1基础知识概述(1)Connection对象用于管理与数据库的连接,通过连接可从应用程序访问数据源,包括打开和关闭连接以及运行SQL命令等,它保存诸如指针类型、连接字符串、查询超时、连接超时和缺省数据库这样的连接信息。它包含了关于目标数据库数据提供程序的相关信息。(2)Command对象包含关于某个命令,例如查询字符串、参数定义等的信息。(3)Recordset对象用来存储数据操作返回的记录集。Recordset对象只代表一个记录集,这个记录集可以是一个数据库中的表,或者是Command对象的执行结果返回的记录集。在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。Recordset对象用于指定行、移动行、添加、更改、删除记录。14.1基础知识概述(1)Connection对象14.1基础知识概述(4)Field对象Field对象对应于数据库表的字段或SQL查询语句Select关键字之后跟随着的域,宽限包含记录集中数据的某单个列的信息。(5)Error对象包含数据提供程序出错时的扩展信息。(6)Parameter对象Parameter对象用于管理基于参数化查询或存储过程的Command对象相关联的某个参数或自变量的信息,这类Command对象有一个包含其所有Parameter对象的Parameters集合。(7)Property对象包含某个ADO对象的提供程序定义的特征。掌握其中的Command、Connection、Recordset对象就可以实现基本的数据库操作。14.1基础知识概述(4)Field对象14.1.2ADO的编程模型ADO编程模型描述了使用ADO对象进行编程所必须的几个重要步骤:1.连接数据源利用Connection对象的Open方法可以创建一个数据源的连接。语法:Connection对象.OpenConnectionString,UserID,PassWord,OpenOptions其中:Connection对象为定义的Connection对象的实例;ConnectionString为可选项,包含了连接的数据库的信息;

UserID可选项,包含建立连接的用户名;

PassWord为可选项,包含建立连接的用户密码;14.1.2ADO的编程模型ADO编程模型描述了使用ADO14.1.2ADO的编程模型2.打开记录集对象(1)方法一:语法:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options

其中:Recordset为所定义的记录集对象的实例。

Source可选项,指明了所打开的记录源信息。ActiveConnection可选项,合法的已打开的Connection对象的变量名或者是包含ConnectionString参数的字符串。

CursorType可选项,确定打开记录集对象使用的指针类型。

LockType可选项,确定打开记录集对象使用的锁定类型。14.1.2ADO的编程模型2.打开记录集对象14.1.2ADO的编程模型(2)方法二:语法:SetRecordset=Connection.Execute_(CommandText,RecordsAffected,Options)

其中:CommandText一个字符串,返回要执行的SQL命令、表名、存储过程或指定文本。

RecordsAffected可选项,Long类型值,返回操作影响的记录数。Options可选项,Long类型值,指明如何处理CommandText参数。打开Recordset对象之后,我们就可以使用它的addnew、delete、update、movenext、find等方法了。14.1.2ADO的编程模型(2)方法二:14.1.2ADO的编程模型3.添加记录添加新记录的AddNew方法语法:Recordset.AddNewFields,Values

其中:Recordset为记录集对象实例

Fields为一个字段名,或者是一个字段数组。

Values为给要加信息的字段赋的值,如果Fileds为一个字段名,那么Values应为一个单个的数值。假如Fileds为一个字段数组,那么Values必须也为一个个数,类型与Fields相同的数组。使用AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中。14.1.2ADO的编程模型3.添加记录14.1.2ADO的编程模型4.修改记录集用SQL语句将要修改的字段的一个数据找出来重新赋值。5.删除记录的Delete方法语法:Recordset.DeleteAffectRecords其中:AffectRecords参数是确定Delete方法作用的方式的。它的取值如下:adAffectCurrent只删除当前的记录。

adAffectGroup删除符合Filter属性设置的那些记录。为了一次能删除一组数据,应设置Filter属性。6.查询记录(1)方法一:使用连接对象的Execute方法执行SQL命令,返回查询记录集。(2)方法二:使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集。14.1.2ADO的编程模型4.修改记录集14.1.2ADO的编程模型7.断开连接在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序.使用的方法为:Close方法。语法:ADO对象.Close14.1.2ADO的编程模型7.断开连接

14.2ADODC控件14.2.1ADODC控件在VB中,使用ADO访问数据库主要有两种方式,一种是使用ADO数据控件,通过对控件的绑定来访问数据库中的数据,即非编程访问方式;另一种是使用ADO对象模型,通过定义对象和编写代码来实现对数据的访问,即编程访问方式,以下我们先介绍使用ADODC控件对数据库进行访问。1.ADODC控件几个重要的与数据库有关的属性,如表14-1所示:14.2ADODC控件14.2.1ADODC控件

14.2ADODC控件表14-1ADO控件属性CommandType 指示命令类型。取值为:1adCmdTextSQL——语句2adCmdTable——表4adCmdStoredProc——存储过程8adCmdUnknown——其他类型ConnectionString支持连接字符串的OLEDB提供程序(打开属性页--通用)。ConnectionTimeou 在中止前等待打开连接的时间量(单位秒)。CursorLocation决定时使用服务器端游标还是客户端游标(使用哪个游标引擎)。取值为:2adUseServer3adUseClientCursorType 设置用于下一级Recordset的游标类型。取值为:1adOpenKeyset2adOpenDynamic3adOpenStaticPassword 密码-支持密码的OLEDB提供程序。(打开属性页--身份验证)RecordSourceRecordset源(adCommandText=SQL或者其它命令'语法',adCommandTable=表名称。)(打开属性页--记录源)UserName 用户名称-支持用户名称的OLEDB提供程序14.2ADODC控件表14-1ADO控件属性

14.2ADODC控件2.ADODC控件常用的方法(1)Refresh方法。该方法用于刷新与ADODC控件连接的记录集数据。(2)UpDateRecord方法通过此方法可以将数据绑定控件上的当前内容写入到数据库。(3)Close方法Close方法主要用于关闭打开的对象及相关对象。3.ADODC控件的事件ADODC控件的事件分为两种类型即:Will事件和Complete事件。其中Will事件是在操作开始之前调用,这时可能检查或修改操作参数,并且可以决定是取消操作还是允许完成操作。而Complete事件是在操作完成之后调用。14.2ADODC控件2.ADODC控件常用的方法

14.2ADODC控件(1)WillMove事件WillMove事件在执行更改Recordset中的当前记录操作之前调用。而MoveComplete事件则是在执行更改Recordset中的当前记录操作之后被调用。执行Recordset.Open、Recordset.MoveNext、Recordset.Move、Recordset.MoveLast、Recordset.MoveFirst、Recordset.MovePrevious、Recordset.Bookmark、Recordset.AddNew、Recordset.Delete、Recordset.Requery等方法时触发。14.2ADODC控件(1)WillMove事件

14.2ADODC控件(2)WillChangField事件和FieldChangComplete事件

WillChangeField在Recordset对象中Field属性值更改之前调用。而FieldChangeComplete在Recordset对象中Field属性值更改之后调用。执行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.UpdateBatch、Recordset.CancelBatch等方法时触发。(3)WillChangRecordSet事件

WillChangRecordSet发生在对Recordset对象进行操作之前,而RecordSetChangComplete发生对Recordset对象进行操作之后。14.2ADODC控件(2)WillChangFiel14.2.2数据绑定控件1.数据绑定简述ADODC控件只能连接数据库,产生记录集。但不能显示记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。数据库记录集数据绑定图14-3数据绑定与数据库和记录集关系图14-3数据绑定与数据库和记录集关系14.2.2数据绑定控件1.数据绑定简述数据库记录集数据绑14.2.2数据绑定控件数据绑定控件具有DataSource、DataField属性的控件均可作为绑定控件(2)常用绑定控件ComBox,Label,TextBox等控件是较为常用的数据绑定控件。14.2.2数据绑定控件数据绑定控件14.2.2数据绑定控件(3)专门与ADO控件绑定的ActiveX控件①DataList–数据列表控件我们在下一节将专门介绍ADO控件与DataList控件结合显示数据。②DataGrid–数据网格控件我们在下一节将专门介绍ADO控件与DataGrid控件结合显示数据。③DataCombo–数据组合控件(4)高级数据绑定控件MicrosoftHierarchicalFlexGfid–分层式网格控件MicrosoftChart–图表控件以上控件中数据网格控件和图表控件可以绑定到整个记录集,而其他控件只能绑定到记录集的某一个字段。14.2.2数据绑定控件(3)专门与ADO控件绑定的Act14.2.2数据绑定控件2.数据绑定方法(1)添加控件首先添加ADODC控件及绑定控件添加到窗体上。(2)设置ADODC控件属性设置ADODC控件的ConnectionString,RecordSource,Password,UserName属性,连接数据库。(3)设置绑定控件的DataSource属性将绑定控件的DataSource属性设为ADODC控件的名称。(4)设置绑定控件的DateField属性将绑定控件的DateField属性设为要显示的字段名称。完成上述步骤后,即可通过绑定控件将数据显示。14.2.2数据绑定控件2.数据绑定方法14.3在VisualBasic中使用ADO对象14.3.1非编程访问方式我们以SQLServer2000数据库为例。使用ADODC控件,快速创建数据绑定控件和数据提供者之间的连接。其中数据绑定控件可以是任何具有DataSource属性的控件;数据提供者可以是任何符合OLEDB规范的数据源。14.3在VisualBasic中使用ADO对象14.3.14.3.1非编程访问方式ADODC控件和DataList控件应用实例(1)建立login数据库首先启动SQLServer2000企业管理器,建立一个login的数据库,在login数据库中建立“用户信息”数据表,如图14-4所示:图14-4SQLServer2000企业管理器建立数据库和数据表14.3.1非编程访问方式ADODC控件和DataList控14.3.1非编程访问方式(2)添加ADODC控件ADODC控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”→“部件”菜单选项,选中“MicrosoftADODataControl6.0(OLEDB)”后,按“确定”,此时ADO数据控件便出现在工具箱中,如图14-5所示:图14-5添加ADODC控件14.3.1非编程访问方式(2)添加ADODC控件图1414.3.1非编程访问方式(3)设置ADODC连接属性将ADODC控件添加到窗体上,其默认的名称属性为“Adodc1”。右击ADODC控件,选“ADODC属性”,弹出“属性页”对话框,如图14-6所示:图14-6设置ADODC控件ConnectionString属性14.3.1非编程访问方式(3)设置ADODC连接属性图点击弹出属性页面,选择“通用”,选中“使用连接字符串”(也可以选择“ODBC数据源名称”),再单击“生成”按钮,弹出“数据链接属性”对话框。选择“提供程序”选项卡,在列表中选择“MicrosoftOLEDBProviderForSQLSERVER”选项,如图14-7所示,再单击“下一步”按钮。图14-7选择OLEDB提供程序14.3.1非编程访问方式点击弹出属性页面,选择“通用”,选中“使用连接字符14.3.1非编程访问方式指定服务器的名称和登录信息并选择本连接要使用的数据库文件。单击“测试连接”按钮以确定连接是否正常。若得到测试成功的消息,单击“确定”按钮以继续,如图14-8所示。服务器名称:机器名\实例名图14-8设置数据连接属性14.3.1非编程访问方式指定服务器的名称和登录信息并选择本14.3.1非编程访问方式(4)设置AD0DC数据源属性在“属性页”对话框中选择“记录源”选项卡,在命令类型下拉列表中选择“2-adCmdTable”选项,在表或存储过程名称下拉列表中选择数据表“用户信息”。(若选择的命令类型为“1-adCmdText”,则可在命令文本框中输入SQL查询语句,SELECT*from用户信息),然后单击“确定”按钮,如图14-9所示:图14-9设置记录源14.3.1非编程访问方式(4)设置AD0DC数据源属性图14.3.1非编程访问方式(5)在窗体上添加数据绑定控件我们使用DataList数据绑定控件。DataList控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”→“部件”菜单选项,选中“MicrosoftDataListControl6.0(SP3)”后,按“确定”,此时DataList控件便出现在工具箱中。图14-9将添加DataLIst控件添加到工具箱14.3.1非编程访问方式(5)在窗体上添加数据绑定控件图14.3.1非编程访问方式(6)设置DataList属性将DataList与ADODC1进行绑定,如图14-10所示:图14-10设置DataList属性14.3.1非编程访问方式(6)设置DataList属性图14.3.1非编程访问方式(7)运行程序将数据表信息通过绑定控件DataList显示,如图14-11所示:图14-11在DataList控件中显示用户名14.3.1非编程访问方式(7)运行程序图14-1114.3.1非编程访问方式2.ADODC控件和DataGrid控件应用实例(1)建立login数据库首先启动SQLServer2000企业管理器,建立一个login的数据库,在login数据库中建立“用户信息”数据表。(2)添加ADODC控件并设置属性方法同ADODC控件和DataList控件应用实例,不再详细介绍。(3)添加DataGrid控件在窗体上添加ADO专用绑定控件—DataGrid控件。DataGrid控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”→“部件”菜单选项,选中“MicrosoftDataGridControl6.0(SP6)”后,按“确定”,此时DataList控件便出现在工具箱中,如图14-12所示:图14-12添加DataGrid控件14.3.1非编程访问方式2.ADODC控件和DataGri14.3.1非编程访问方式设置DataGrid属性DataGrid控件DataSource属性如图14-13所示:图14-13设置DataGrid的DataSource属性14.3.1非编程访问方式设置DataGrid属性图114.3.1非编程访问方式②进行数据绑定数据:右键单击DataGrid控件,选择“检索字段”,进行数据绑定,也可以选择“属性DataField”进行绑定。(4)运行程序运行程序后,将数据表的信息通过数据绑定控件DataGrid显示出来,如图14-14所示:图14-14在DataGrid控件中显示数据表“用户信息”14.3.1非编程访问方式②进行数据绑定数据:图14-114.3.1非编程访问方式通过ADODC控件与DataList控件及ADODC控件与DataGrid控件结合,可实现SQLServer数据库login中“用户信息”表中数据的浏览功能。ADODC控件还可以和TextBox控件、DataCombo控件结合,显示数据表数据。14.3.1非编程访问方式通过ADODC控件与DataLis14.3.1编程访问方式编程访问方式是使用ADO对象模型访问数据库。为了能够在程序中使用ADO对象编程,在连接数据库前,需要在VisualBasic6.0菜单“工程”→“引用”中选择MicrosoftActiveXDataObjects2.8Library组件。运用ADO对象模型的主要元素:Connection(连接)中的ConnectionString属性进行连接,ConnectionString为可读写string类型,指定一个连接字符串,告诉ADO如何连接数据库。14.3.1编程访问方式编程访问方式是使用ADO对象模型访14.3.1编程访问方式1.定义ADO对象用于设置打开连接和产生记录集(1)声明语句如下:

DimconnAsNewADODB.Connection‘定义连接对象

DimrsAsNewADODB.Recordset‘定义记录集对象(2)创建对象实例定义ADO对象实例,声明了对象以后,还需要创建对象实例,否则不能使用。以下是两条重要语句:Setconn=NewADODB.Connection‘创建conn对象Setrs=NewADODB.Recordset‘创建rs对象14.3.1编程访问方式1.定义ADO对象用于设置打开连接和14.3.1编程访问方式2.数据库连接设置Connection对象实例ConnectionString属性连接到数据库。有两种方法:有源数据库连接和无源数据库连接(1)有源数据库连接有源数据库连接首要任务是要注册数据源名称(DSN),通过配置ODBC环境,进行数据源的注册,然后才能对数据源进行连接、访问和操作。以连接数据源login为实例进行操作:14.3.1编程访问方式2.数据库连接14.3.1编程访问方式①启动ODBC在WindowsXP点击“开始”→“控件面板”→“性能和维护”→管理工具,出现如下界面:图14-15ODBC界面14.3.1编程访问方式①启动ODBC图14-15O14.3.1编程访问方式②添加“用户DSN”双击“数据源(ODBC)”,出现如下界面,选择“用户DSN”,点击“添加”,如图14-16所示:图14-16添加用DSN14.3.1编程访问方式②添加“用户DSN”图14-1614.3.1编程访问方式③选择数据源的驱动程序数据源驱动程序选择“SQLServer”,如图14-17所示:图14-17选择数据源的驱动程序14.3.1编程访问方式③选择数据源的驱动程序图14-114.3.1编程访问方式④数据源命名给数据源命名为Login,如图14-18所示:服务器名称:机器名\实例名图14-18给数据源命名14.3.1编程访问方式④数据源命名服务器名称:机器名\实例14.3.1编程访问方式注:服务器名根据实际情况填写:机器名\实例名⑤测试数据源:图14-19数据源测试14.3.1编程访问方式注:服务器名根据实际情况填写:机器名14.3.1编程访问方式(2)无源数据库连接与有源数据库连接的区别在于不需要配置ODBC,不使用DSN。①提供连接所需要的特定信息包括服务器名称:“机器名\实例名”用户名:“sa”口令可为空与数据库“login”建立的连接代码如下:

温馨提示

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

评论

0/150

提交评论