1、VisualBasic程序设计项目化教程-项目14ADO数据库访问技术的应用项目十四:项目十四:ADO数据库访问技术的应用数据库访问技术的应用n项目功能描述项目功能描述:n本项目主要是了解本项目主要是了解ADO的主要功能与特性,的主要功能与特性,ADO对象对象模型简介及模型简介及ADO的编程模型。掌握的编程模型。掌握ADODC控件的主控件的主要属性、常用方法及常用事件。掌握数据绑定控件的要属性、常用方法及常用事件。掌握数据绑定控件的主要属性、常用方法及常用事件。掌握在主要属性、常用方法及常用事件。掌握在Visual Basic中使用中使用ADO对象,进行非编程式访问数据库和对象,进行非编程式访
2、问数据库和编程式访问数据库编程式访问数据库项目十四:项目十四:ADO数据库访问技术的应用数据库访问技术的应用n项目主要知识点:项目主要知识点:n1关于关于ADOn2ADODC控件控件n3数据绑定控件数据绑定控件n4在在Visual Basic中使用中使用ADO对象对象n项目实施步骤:项目实施步骤:n阅读基础知识阅读基础知识n实例操作实例操作n完成思考与练习题完成思考与练习题14.1 基础知识概述基础知识概述n14.1.1关于关于ADOn1.ADO主要功能与特性主要功能与特性nADO(ActiveX Data Object,Active 数据对象)是基于数据对象)是基于OLE DB技术而设计的。
3、是技术而设计的。是Microsoft提供的一种面向对象,与语言无关的提供的一种面向对象,与语言无关的基于应用程序层的数据访问接口。它是基于应用程序层的数据访问接口。它是DAO/RDO的后继产物。的后继产物。它主要特性:易于使用、可以访问多种数据源、访问速度快且效它主要特性:易于使用、可以访问多种数据源、访问速度快且效率高、易于率高、易于Web应用、技术编程接口丰富、低内存支出和占用磁应用、技术编程接口丰富、低内存支出和占用磁盘空间较少。盘空间较少。ADO访问数据是通过访问数据是通过OLE DB来实现的,来实现的,OLE DB不仅能够以不仅能够以SQL Server、Oracle、Access等
4、数据库文件为访问等数据库文件为访问对象,还可对对象,还可对Excel表格、文本文件、图形文件、电子邮件等各表格、文本文件、图形文件、电子邮件等各种各样的数据通过统一的接口进行存取。种各样的数据通过统一的接口进行存取。ADO与与OLE DB的关系的关系如图如图14-1所示:所示:14.1 基础知识概述基础知识概述图 14-1 ADO与OLE DB的关系图 14-1 ADO与OLE DB的关系14.1 基础知识概述基础知识概述n2ADO对象模型对象模型nADO集中了集中了DAO和和RDO的优点,且不像的优点,且不像DAO和和RDO那样依赖于对象层次。那样依赖于对象层次。ADO对对象模型定义了一个可
5、编程的分层对象集合,象模型定义了一个可编程的分层对象集合,ADO模型主要由七个对象成员模型主要由七个对象成员Connection(连接)、(连接)、Command(命令)、(命令)、RecordSet(记录集)、(记录集)、Error(错误)、(错误)、Parameter(参数)、(参数)、Field(字段)和(字段)和Property(属性)以及四个集合对象(属性)以及四个集合对象Errors、Parameters、Fields、Properties所组成。所组成。每个每个 Connection、Command、Recordset和和Field对象都有对象都有Properties集合。集合。
6、n它们之间的关系如图它们之间的关系如图14-2所示所示:网网图 14-2 ADO对象模型关系图 14-2 ADO对象模型关系14.1 基础知识概述基础知识概述n(1)Connection 对象对象n用于管理与数据库的连接用于管理与数据库的连接,通过连接可从应用程序访问数据源,包括打通过连接可从应用程序访问数据源,包括打开和关闭连接以及运行开和关闭连接以及运行SQL命令等,它保存诸如指针类型、连接字符串、命令等,它保存诸如指针类型、连接字符串、查询超时、连接超时和缺省数据库这样的连接信息。它包含了关于目标查询超时、连接超时和缺省数据库这样的连接信息。它包含了关于目标数据库数据提供程序的相关信息。
7、数据库数据提供程序的相关信息。n(2)Command 对象对象n包含关于某个命令,例如查询字符串、参数定义等的信息。包含关于某个命令,例如查询字符串、参数定义等的信息。n(3)Recordset对象对象n用来存储数据操作返回的记录集。用来存储数据操作返回的记录集。Recordset对象只代表一个记录集,对象只代表一个记录集,这个记录集可以是一个数据库中的表,或者是这个记录集可以是一个数据库中的表,或者是Command对象的执行结对象的执行结果返回的记录集。在果返回的记录集。在ADO对象模型中,是在行中检查和修改数据的最对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在
8、主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。对象中完成的。Recordset对象用于指定行、移动行、添加、更改、删除记录。对象用于指定行、移动行、添加、更改、删除记录。14.1 基础知识概述基础知识概述n(4)Field 对象对象nField 对象对应于数据库表的字段或对象对应于数据库表的字段或SQL查询语句查询语句Select关键字之后跟随关键字之后跟随着的域,宽限包含记录集中数据的某单个列的信息。着的域,宽限包含记录集中数据的某单个列的信息。n(5)Error对象对象n包含数据提供程序出错时的扩展信息。包含数据提供程序出错时的扩展信息。n(6)Parameter
9、对象对象nParameter 对象用于管理基于参数化查询或存储过程的对象用于管理基于参数化查询或存储过程的Command对象对象相关联的某个参数或自变量的信息,这类相关联的某个参数或自变量的信息,这类Command对象有一个包含其对象有一个包含其所有所有Parameter 对象的对象的 Parameters 集合。集合。n(7)Property对象对象n包含某个包含某个 ADO 对象的提供程序定义的特征。对象的提供程序定义的特征。n掌握其中的掌握其中的Command、Connection、Recordset对象就可以实现基本对象就可以实现基本的数据库操作。的数据库操作。14.1.2 ADO的编
10、程模型的编程模型nADO编程模型描述了使用编程模型描述了使用ADO对象进行编程所必须的几个重要步对象进行编程所必须的几个重要步骤:骤:n1.连接数据源连接数据源n利用利用Connection对象的对象的Open方法可以创建一个数据源的连接。方法可以创建一个数据源的连接。n 语法:语法:Connection对象对象.Open ConnectionString,UserID,PassWord,OpenOptionsn其中:其中:Connection对象为定义的对象为定义的Connection对象的实例;对象的实例;nConnectionString为可选项为可选项,包含了连接的数据库的信息;包含了
11、连接的数据库的信息;n UserID 可选项可选项,包含建立连接的用户名;包含建立连接的用户名;n PassWord为可选项为可选项,包含建立连接的用户密码;包含建立连接的用户密码;14.1.2 ADO的编程模型的编程模型n2.打开记录集对象打开记录集对象n(1)方法一:)方法一:n语法:语法:Recordset.Open Source,ActiveConnection,CursorType,LockType,Optionsn 其中:其中:Recordset为所定义的记录集对象的实例。为所定义的记录集对象的实例。n Source可选项可选项,指明了所打开的记录源信息。指明了所打开的记录源信息。
12、ActiveConnection可选项,合法的已打开的可选项,合法的已打开的Connection对象的对象的变量名或者是包含变量名或者是包含ConnectionString参数的字符串。参数的字符串。n CursorType可选项,确定打开记录集对象使用的指针可选项,确定打开记录集对象使用的指针类型。类型。n LockType可选项,可选项,确定打开记录集对象使用的锁定类确定打开记录集对象使用的锁定类型。型。14.1.2 ADO的编程模型的编程模型n(2)方法二:)方法二:n语法:语法:Set Recordset=Connection.Execute_n (CommandText,Record
13、sAffected,Options)n 其中其中:CommandText 一个字符串,返回要执行的一个字符串,返回要执行的SQL命令、命令、表名、存储过程或指定文本。表名、存储过程或指定文本。n RecordsAffected 可选项,可选项,Long类型值类型值,返回操作影响的返回操作影响的记录数。记录数。nOptions 可选项,可选项,Long类型值,指明如何处理类型值,指明如何处理CommandText参参数。数。n 打开打开Recordset对象之后,我们就可以使用它的对象之后,我们就可以使用它的addnew、delete、update、movenext、find等方法了。等方法了。
14、14.1.2 ADO的编程模型的编程模型n3.添加记录添加记录n添加新记录的添加新记录的AddNew方法方法n语法语法:Recordset.AddNew Fields,Valuesn 其中其中:Recordset为记录集对象实例为记录集对象实例n Fields为一个字段名,或者是一个字段数组。为一个字段名,或者是一个字段数组。n Values为给要加信息的字段赋的值,如果为给要加信息的字段赋的值,如果Fileds为一个字段名,为一个字段名,那么那么Values应为一个单个的数值。假如应为一个单个的数值。假如Fileds为一个字段数组,为一个字段数组,那么那么Values必须也为一个个数,类型与
15、必须也为一个个数,类型与Fields相同的数组。相同的数组。n 使用使用AddNew方法为记录集添加新的记录后,应使用方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中。将所添加的的数据存储在数据库中。14.1.2 ADO的编程模型的编程模型n4.修改记录集修改记录集n 用用SQL语句将要修改的字段的一个数据找出来重新赋值。语句将要修改的字段的一个数据找出来重新赋值。n5.删除记录的删除记录的Delete方法方法n 语法语法:Recordset.Delete AffectRecordsn其中其中:AffectRecords参数是确定参数是确定Delete方法作用的方式
16、的。方法作用的方式的。n它的取值如下它的取值如下:adAffectCurrent 只删除当前的记录。只删除当前的记录。n adAffectGroup 删除符合删除符合Filter属性设置的那些记录。为了一次能删属性设置的那些记录。为了一次能删除一组数据,应设置除一组数据,应设置Filter属性。属性。n6.查询记录查询记录n(1)方法一:)方法一:n使用连接对象的使用连接对象的Execute方法执行方法执行SQL命令,返回查询记录集。命令,返回查询记录集。n(2)方法二:)方法二:n 使用使用Command对象的对象的Execute方法执行方法执行CommandText属性中设置的属性中设置的
17、SQL命令,返回查询记录集。命令,返回查询记录集。14.1.2 ADO的编程模型的编程模型n7.断开连接断开连接n 在应用程序结束之前在应用程序结束之前,应该释放分配给应该释放分配给ADO对象对象的资源的资源,操作系统回收这些资源并可以再分配给其他应操作系统回收这些资源并可以再分配给其他应用程序用程序.n 使用的方法为使用的方法为:Close方法。方法。n语法:语法:ADO对象对象.Close 14.2 ADODC控件控件 n14.2.1 ADODC控件控件n在在VB中,使用中,使用ADO访问数据库主要有两种方式,一种访问数据库主要有两种方式,一种是使用是使用ADO数据控件,通过对控件的绑定来
18、访问数据数据控件,通过对控件的绑定来访问数据库中的数据,即非编程访问方式;另一种是使用库中的数据,即非编程访问方式;另一种是使用ADO对象模型,通过定义对象和编写代码来实现对数据的对象模型,通过定义对象和编写代码来实现对数据的访问,即编程访问方式,以下我们先介绍使用访问,即编程访问方式,以下我们先介绍使用ADODC控件对数据库进行访问。控件对数据库进行访问。n1ADODC控件几个重要的与数据库有关的属性,如控件几个重要的与数据库有关的属性,如表表14-1所示:所示:14.2 ADODC控件控件 n表表 14-1 ADO控件属性控件属性CommandType指示命令类型。取值为:1 adCmdT
19、ext SQL 语句2 adCmdTable 表4 adCmdStoredProc存储过程8 adCmdUnknown 其他类型ConnectionString支持连接字符串的OLEDB提供程序(打开属性页-通用)。ConnectionTimeou在中止前等待打开连接的时间量(单位秒)。CursorLocation决定时使用服务器端游标还是客户端游标(使用哪个游标引擎)。取值为:2 adUseServer3 adUseClientCursorType设置用于下一级Recordset的游标类型。取值为:1 adOpenKeyset2 adOpenDynamic3 adOpenStaticPass
20、word密码-支持密码的OLEDB提供程序。(打开属性页-身份验证)RecordSourceRecordset源(adCommandText=SQL或者其它命令语法,adCommandTable=表名称。)(打开属性页-记录源)UserName用户名称-支持用户名称的OLEDB提供程序 14.2 ADODC控件控件 n2ADODC控件常用的方法控件常用的方法n(1)Refresh方法。方法。n该方法用于刷新与该方法用于刷新与ADODC控件连接的记录集数据。控件连接的记录集数据。n(2)UpDateRecord方法方法n通过此方法可以将数据绑定控件上的当前内容写入到数据库。通过此方法可以将数据绑
21、定控件上的当前内容写入到数据库。n(3)Close方法方法nClose方法主要用于关闭打开的对象及相关对象。方法主要用于关闭打开的对象及相关对象。n3ADODC控件的事件控件的事件nADODC控件的事件分为两种类型即:控件的事件分为两种类型即:Will事件和事件和Complete事件。事件。其中其中Will事件是在操作开始之前调用,这时可能检查或修改操作事件是在操作开始之前调用,这时可能检查或修改操作参数,并且可以决定是取消操作还是允许完成操作。而参数,并且可以决定是取消操作还是允许完成操作。而Complete事件是在操作完成之后调用。事件是在操作完成之后调用。14.2 ADODC控件控件 n
22、(1)WillMove事件事件nWillMove事件在执行更改事件在执行更改Recordset中的当前记录操中的当前记录操作之前调用。而作之前调用。而MoveComplete事件则是在执行更改事件则是在执行更改Recordset中的当前记录操作之后被调用。执行中的当前记录操作之后被调用。执行Recordset.Open、Recordset.MoveNext、Recordset.Move、Recordset.MoveLast、Recordset.MoveFirst、Recordset.MovePrevious、Recordset.Bookmark、Recordset.AddNew、Records
23、et.Delete、Recordset.Requery等方法时触等方法时触发。发。14.2 ADODC控件控件 n(2)WillChangField事件和事件和FieldChangComplete事件事件n WillChangeField 在在Recordset对象中对象中Field属性值更改之前属性值更改之前调用。而调用。而FieldChangeComplete 在在Recordset对象中对象中Field属性属性值更改之后调用。值更改之后调用。执行执行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.Upd
24、ateBatch、Recordset.CancelBatch 等方法时触发。等方法时触发。n(3)WillChangRecordSet事件事件n WillChangRecordSet发生在对发生在对Recordset对象进行操作之对象进行操作之前,而前,而nRecordSetChangComplete发生对发生对Recordset对象进行操作之后。对象进行操作之后。14.2.2 数据绑定控件数据绑定控件n1数据绑定简述数据绑定简述nADODC控件只能连接数据库,产生记录集。但不能显示记录集控件只能连接数据库,产生记录集。但不能显示记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来中
25、的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。实现。数据库记录集数据绑定图 14-3 数据绑定与数据库和记录集关系图 14-3 数据绑定与数据库和记录集关系14.2.2 数据绑定控件数据绑定控件n数据绑定控件数据绑定控件n具有具有DataSource、DataField属性的控件均可作为绑属性的控件均可作为绑定控件定控件n(2)常用绑定控件)常用绑定控件nComBox,Label,TextBox等控件是较为常用的数据绑等控件是较为常用的数据绑定控件。定控件。14.2.2 数据绑定控件数据绑定控件n(3)专门与)专门与ADO控件绑定的控件绑定的ActiveX控件控件nDataLis
26、t 数据列表控件数据列表控件n我们在下一节将专门介绍我们在下一节将专门介绍ADO控件与控件与DataList控件结合显示数据。控件结合显示数据。nDataGrid 数据网格控件数据网格控件n我们在下一节将专门介绍我们在下一节将专门介绍ADO控件与控件与DataGrid控件结合显示数据。控件结合显示数据。nDataCombo 数据组合控件数据组合控件n(4)高级数据绑定控件)高级数据绑定控件nMi crosoft Hierarchical FlexGfid 分层式网格控件分层式网格控件nMicrosoft Chart 图表控件图表控件n以上控件中数据网格控件和图表控件可以绑定到整个记录集,而以上
27、控件中数据网格控件和图表控件可以绑定到整个记录集,而其他控件只能绑定到记录集的某一个字段。其他控件只能绑定到记录集的某一个字段。14.2.2 数据绑定控件数据绑定控件n2数据绑定方法数据绑定方法n(1)添加控件)添加控件n首先添加首先添加ADODC控件及绑定控件添加到窗体上。控件及绑定控件添加到窗体上。n(2)设置)设置ADODC控件属性控件属性n设置设置ADODC控件的控件的ConnectionString,RecordSource,Password,UserName属性,连接数据库。属性,连接数据库。n(3)设置绑定控件的)设置绑定控件的DataSource属性属性n将绑定控件的将绑定控件
28、的DataSource属性设为属性设为ADODC控件的名称。控件的名称。n(4)设置绑定控件的)设置绑定控件的DateField属性属性n将绑定控件的将绑定控件的DateField属性设为要显示的字段名称。属性设为要显示的字段名称。n完成上述步骤后,即可通过绑定控件将数据显示。完成上述步骤后,即可通过绑定控件将数据显示。14.3在在Visual Basic中使用中使用ADO对象对象n14.3.1非编程访问方式非编程访问方式n我们以我们以SQL Server 2000数据库为例。使用数据库为例。使用ADODC控控件,快速创建数据绑定控件和数据提供者之间的连接。件,快速创建数据绑定控件和数据提供者
29、之间的连接。其中数据绑定控件可以是任何具有其中数据绑定控件可以是任何具有DataSource属性的属性的控件;数据提供者可以是任何符合控件;数据提供者可以是任何符合OLE DB规范的数据规范的数据源。源。14.3.1非编程访问方式非编程访问方式nADODC控件和控件和DataList控件应用实例控件应用实例n(1)建立)建立login数据库数据库n首先启动首先启动SQL Server 2000企业管理器,建立一个企业管理器,建立一个login的数据的数据库,在库,在 login数据库中建立数据库中建立“用户信息用户信息”数据表,如图数据表,如图14-4所示:所示:图 14-4 SQL Serv
30、er 2000企业管理器建立数据库和数据表14.3.1非编程访问方式非编程访问方式n(2)添加)添加ADODC控件控件nADODC 控件是控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单控件,在使用前必须先将其添加到工具箱中。方法是:单击击“工程工程”“部件部件”菜单选项,选中菜单选项,选中“Microsoft ADO Data Control 6.0(OLE DB)”后,按后,按“确定确定”,此时,此时ADO数据控件便出现在工具箱中,如图数据控件便出现在工具箱中,如图14-5所示:所示:图图 14-5 14-5 添加添加ADODCADODC控件控件14.3.1非编程访问
31、方式非编程访问方式n(3)设置)设置ADODC连接属性连接属性n将将ADODC控件添加到窗体上,其默认的名称属性为控件添加到窗体上,其默认的名称属性为“Adodc1”。右击。右击ADODC 控件,选控件,选“ADODC属性属性”,弹出,弹出“属性页属性页”对话框,如图对话框,如图14-6所示:所示:图 14-6 设置ADODC控件ConnectionString属性n点击点击 弹出属性页面,选弹出属性页面,选择择“通用通用”,选中,选中“使用连使用连接字符串接字符串”(也可以选择(也可以选择“ODBC数据源名称数据源名称”),),再单击再单击“生成生成”按钮,弹出按钮,弹出“数据链接属性数据链
32、接属性”对话框。对话框。选择选择“提供程序提供程序”选项卡,选项卡,在列表中选择在列表中选择“Microsoft OLE DB Provider For SQL SERVER”选项,如图选项,如图14-7所示,再单击所示,再单击“下一步下一步”按钮。按钮。图 14-7 选择OLE DB提供程序14.3.1非编程访问方式非编程访问方式14.3.1非编程访问方式非编程访问方式n指定服务器的名称指定服务器的名称和登录信息并选择和登录信息并选择本连接要使用的数本连接要使用的数据库文件。单击据库文件。单击“测试连接测试连接”按钮按钮以确定连接是否正以确定连接是否正常。若得到测试成常。若得到测试成功的消息
33、,单击功的消息,单击“确定确定”按钮以继按钮以继续,如图续,如图14-8所示。所示。服务器名称:机器名服务器名称:机器名实例名实例名图 14-8 设置数据连接属性14.3.1非编程访问方式非编程访问方式n(4)设置)设置AD0DC数据源属性数据源属性n在在“属性页属性页”对话框中选择对话框中选择“记记录源录源”选项卡,在命令类型下拉选项卡,在命令类型下拉列表中选择列表中选择“2-adCmdTable”选项,在表或存储过程名称下拉选项,在表或存储过程名称下拉列表中选择数据表列表中选择数据表“用户信息用户信息”。(若选择的命令类型为(若选择的命令类型为“1-adCmdText”,则可在命令文本,则
34、可在命令文本框中输入框中输入SQL查询语查询语句句,SELECT*from 用户信息),用户信息),然后单击然后单击“确定确定”按钮,如图按钮,如图14-9所示:所示:图 14-9 设置记录源14.3.1非编程访问方式非编程访问方式n(5)在窗体上添加数据)在窗体上添加数据绑定控件绑定控件n我们使用我们使用DataList数据数据绑定控件。绑定控件。DataList 控控件是件是ActiveX控件,在使控件,在使用前必须先将其添加到用前必须先将其添加到工具箱中。方法是:单工具箱中。方法是:单击击“工程工程”“部件部件”菜单选项,选中菜单选项,选中“Microsoft DataList Cont
35、rol 6.0(SP3)”后,按后,按“确定确定”,此时,此时DataList控件便出现在控件便出现在工具箱中。工具箱中。图 14-9 将添加DataLIst控件添加到工具箱14.3.1非编程访问方式非编程访问方式n(6)设置)设置DataList属性属性n 将将DataList与与ADODC1进行绑定,如图进行绑定,如图14-10所示:所示:图 14-10 设置DataList属性14.3.1非编程访问方式非编程访问方式n(7)运行程序)运行程序n将数据表信息通过绑定控件将数据表信息通过绑定控件DataList显示,如图显示,如图14-11所示:所示:图 14-11 在DataList控件中
36、显示用户名14.3.1非编程访问方式非编程访问方式n2ADODC控件和控件和DataGrid控件应用实例控件应用实例n(1)建立)建立login数据库数据库n首先启动首先启动SQL Server 2000企业管理器,建立一企业管理器,建立一个个login的数据库,在的数据库,在login数据库中建立数据库中建立“用户用户信息信息”数据表。数据表。n(2)添加)添加ADODC控件并设置属性控件并设置属性n方法同方法同ADODC控件和控件和DataList控件应用实例,控件应用实例,不再详细介绍。不再详细介绍。n(3)添加)添加DataGrid控件控件n在窗体上添加在窗体上添加ADO专用绑定控件专
37、用绑定控件DataGrid控控件。件。DataGrid控件是控件是ActiveX控件,在使用前必控件,在使用前必须先将其添加到工具箱中。方法是:单击须先将其添加到工具箱中。方法是:单击“工工程程”“部件部件”菜单选项,选中菜单选项,选中“Microsoft DataGrid Control 6.0(SP6)”后,按后,按“确确定定”,此时,此时DataList控件便出现在工具箱中控件便出现在工具箱中,如图如图14-12所示:所示:图 14-12 添加DataGrid控件14.3.1非编程访问方式非编程访问方式n设置设置DataGrid属性属性nDataGrid控件控件DataSource属性如
38、图属性如图14-13所示:所示:图 14-13 设置DataGrid的DataSource属性14.3.1非编程访问方式非编程访问方式n进行数据绑定数据:进行数据绑定数据:n右键单击右键单击DataGrid控件,选择控件,选择“检索字段检索字段”,进行数据绑定,也可以选,进行数据绑定,也可以选择择“属性属性DataField”进行绑定。进行绑定。n(4)运行程序)运行程序n运行程序后,将数据表的信息通过数据绑定控件运行程序后,将数据表的信息通过数据绑定控件DataGrid显示出来,如显示出来,如图图14-14所示:所示:图 14-14 在DataGrid控件中显示数据表“用户信息”14.3.1
39、非编程访问方式非编程访问方式n通过通过ADODC控件与控件与DataList控件及控件及ADODC控件与控件与DataGrid控件结合,可实现控件结合,可实现SQL Server数据库数据库login中中“用户信息用户信息”表中数据的浏览功能。表中数据的浏览功能。ADODC控件还控件还可以和可以和TextBox控件、控件、DataCombo控件结合,显示数控件结合,显示数据表数据。据表数据。14.3.1编程访问方式编程访问方式n编程访问方式是使用编程访问方式是使用ADO 对象模型访问数据库。为了对象模型访问数据库。为了能够在程序中使用能够在程序中使用ADO对象编程,在连接数据库前,对象编程,在
40、连接数据库前,需要在需要在Visual Basic 6.0菜单菜单“工程工程”“引用引用”中中选择选择Microsoft ActiveX Data Objects 2.8 Library组组件。运用件。运用ADO对象模型的主要元素:对象模型的主要元素:Connection(连(连接)中的接)中的ConnectionString属性进行连接,属性进行连接,ConnectionString为可读写为可读写string类型,指定一个连类型,指定一个连接字符串,告诉接字符串,告诉ADO如何连接数据库。如何连接数据库。14.3.1编程访问方式编程访问方式n1定义定义ADO对象用于设置打开连接和产生记录集
41、对象用于设置打开连接和产生记录集n(1)声明语句如下:)声明语句如下:n Dim conn As New ADODB.Connection 定义连接对象定义连接对象n Dim rs As New ADODB.Recordset 定义记录集对象定义记录集对象n(2)创建对象实例)创建对象实例n定义定义ADO对象实例,声明了对象以后,还需要创建对象实例,否对象实例,声明了对象以后,还需要创建对象实例,否则不能使用。以下是两条重要语句:则不能使用。以下是两条重要语句:nSet conn=New ADODB.Connection 创建创建conn对象对象nSet rs=New ADODB.Record
42、set 创建创建rs对象对象14.3.1编程访问方式编程访问方式n2数据库连接数据库连接n设置设置Connection对象实例对象实例ConnectionString属性连属性连接到数据库。有两种方法:有源数据库连接和无源数接到数据库。有两种方法:有源数据库连接和无源数据库连接据库连接n(1)有源数据库连接)有源数据库连接n有源数据库连接首要任务是要注册数据源名称有源数据库连接首要任务是要注册数据源名称(DSN),通过配置),通过配置ODBC环境,进行数据源的注册,环境,进行数据源的注册,然后才能对数据源进行连接、访问和操作。以连接数然后才能对数据源进行连接、访问和操作。以连接数据源据源log
43、in为实例进行操作:为实例进行操作:14.3.1编程访问方式编程访问方式n启动启动ODBCn在在Windows XP点击点击“开始开始”“控件面板控件面板”“性性能和维护能和维护”管理工具,出现如下界面:管理工具,出现如下界面:图 14-15 ODBC界面14.3.1编程访问方式编程访问方式n添加添加“用户用户DSN”n双击双击“数据源(数据源(ODBC)”,出现如下界面,选择,出现如下界面,选择“用户用户DSN”,点击,点击“添加添加”,如图,如图14-16所示:所示:图 14-16 添加用DSN14.3.1编程访问方式编程访问方式n选择数据源的驱动程序选择数据源的驱动程序n数据源驱动程序选
44、择数据源驱动程序选择“SQL Server”,如图如图14-17所示:所示:图 14-17 选择数据源的驱动程序14.3.1编程访问方式编程访问方式n数据源命名数据源命名n给数据源命名为给数据源命名为Login,如图,如图14-18所示:所示:服务器名称:机器名实例名图 14-18 给数据源命名14.3.1编程访问方式编程访问方式n注:服务器名根据实际情况填写:机器名注:服务器名根据实际情况填写:机器名实例名实例名n测试数据源测试数据源:图 14-19 数据源测试14.3.1编程访问方式编程访问方式n(2)无源数据库连接)无源数据库连接n与有源数据库连接的区别在于不需要配置与有源数据库连接的区
45、别在于不需要配置ODBC,不使用,不使用DSN。n提供连接所需要的特定信息包括提供连接所需要的特定信息包括n服务器名称:服务器名称:“机器名机器名实例名实例名”n用户名:用户名:“sa”n口令可为空口令可为空n与数据库与数据库“login”建立的连接代码如下:建立的连接代码如下:nconn.ConnectionString=driver=sql server;_nserver=机器名机器名实例名;实例名;Uer Id=sa;pwd=;Database=loginn打开连接对象打开连接对象n设置好连接属性后,就可以打开连接对象了。代码如下:设置好连接属性后,就可以打开连接对象了。代码如下:n c
46、onn.Openn这样,这样,VB和后台和后台SQL Server数据库的连接就创建好了。数据库的连接就创建好了。14.3.3实例操作实例操作n1有源数据库连接有源数据库连接n(1)创建)创建“标准标准EXE”工程,工程命名为工程,工程命名为loginn(2)引用)引用“Microsoft ActiveX Data Object 2.0 Library”n(3)创建模块文件)创建模块文件n选择选择“工程工程”“添加模块添加模块”,在模块中输入代码:,在模块中输入代码:nPublic conn As New ADODB.Connection 标记新连接对象标记新连接对象nPublic rs As
47、 ADODB.Recordset 标记新记录集对象标记新记录集对象14.3.3实例操作实例操作n(4)创建登录窗体界)创建登录窗体界面面n选择选择“工程工程”“添加添加窗体窗体”,在,在VB窗体中添窗体中添加两个标签控件、两个加两个标签控件、两个文件框控件和一个命令文件框控件和一个命令按钮控件按钮控件,窗体界面如图窗体界面如图14-20:图 14-20 登录窗体界面14.3.3实例操作实例操作n有源数据库连接主要代码有源数据库连接主要代码nDim conn As New ADODB.Connection 定义连接对象定义连接对象nDim rs As ADODB.Recordset 定义记录集对
48、象定义记录集对象n窗体加载代码窗体加载代码:nPrivate Sub Form_Load()nSet conn=New ADODB.Connection 设置设置conn实例对象实例对象nSet rs=New ADODB.Recordset 设置设置rs实例对象实例对象nconn.ConnectionString=DSN=login;User_ ID=sa;Password=;database=login;nconn.ConnectionTimeout=30nconn.OpennEnd Sub14.3.3实例操作实例操作n其中有源数据库连接:其中有源数据库连接:nDSN数据源是数据源是“Log
49、in”n用户名是用户名是“sa”n口令为空口令为空n与数据库与数据库“login”建立的连接代码:建立的连接代码:nconn.ConnectionString=DSN=Login;User ID=sa;PWD=;database=login;n命令按钮代码:命令按钮代码:nPrivate Sub Command1_Click()nrs.Open select*from 用户信息用户信息 where 用户名用户名=&Text1.Text&_nand 密码密码=&Text2.Text&,conn,adOpenstate,adLockOptimistic,_ adCmdText14.3.3实例操作实
50、例操作nIf rs.EOF=True ThennMsgBox 请重新输入学号或密码请重新输入学号或密码!nText1.Text=nText2.Text=nText1.SetFocusnElsenMsgBox 登录成功登录成功nEnd Ifnrs.ClosenUnload MenEnd Sub14.3.3实例操作实例操作n(6)程序运行)程序运行n程序运行后,用户名与密码输入正确后,登录成功程序运行后,用户名与密码输入正确后,登录成功,n如图如图14-21所示:所示:图 14-21 登录成功界面14.3.3实例操作实例操作n2.无源数据库连接无源数据库连接n与有源数据库连接不同的是无与有源数据库