版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual Basic 程序设计项目化教程主编 管小清 郭贺彬项目十四:ADO数据库访问技术的应用项目功能描述:本项目主要是了解ADO的主要功能与特性,ADO对象模型简介及ADO的编程模型。掌握ADODC控件的主要属性、常用方法及常用事件。掌握数据绑定控件的主要属性、常用方法及常用事件。掌握在Visual Basic中使用ADO对象,进行非编程式访问数据库和编程式访问数据库项目十四:ADO数据库访问技术的应用项目主要知识点:1关于ADO2ADODC控件3数据绑定控件4在Visual Basic中使用ADO对象项目实施步骤:阅读基础知识实例操作完成思考与练习题14.1 基础知识概述14.1.1
2、关于ADO1.ADO主要功能与特性ADO(ActiveX Data Object, Active 数据对象)是基于OLE DB技术而设计的。是Microsoft提供的一种面向对象,与语言无关的基于应用程序层的数据访问接口。它是DAO/RDO的后继产物。它主要特性:易于使用、可以访问多种数据源、访问速度快且效率高、易于Web应用、技术编程接口丰富、低内存支出和占用磁盘空间较少。ADO访问数据是通过OLE DB来实现的,OLE DB不仅能够以SQL Server、Oracle、Access等数据库文件为访问对象,还可对Excel表格、文本文件、图形文件、电子邮件等各种各样的数据通过统一的接口进行存
3、取。ADO与OLE DB的关系如图14-1所示:14.1 基础知识概述图 14-1 ADO与OLE DB的关系图 14-1 ADO与OLE DB的关系14.1 基础知识概述2ADO对象模型ADO集中了DAO和RDO的优点,且不像DAO和RDO那样依赖于对象层次。ADO对象模型定义了一个可编程的分层对象集合,ADO模型主要由七个对象成员Connection(连接)、Command(命令)、RecordSet(记录集)、Error(错误)、Parameter(参数)、Field(字段)和Property(属性)以及四个集合对象Errors、Parameters、Fields、Properties所
4、组成。每个 Connection、Command、Recordset和Field对象都有Properties集合。它们之间的关系如图14-2所示: 网图 14-2 ADO对象模型关系图 14-2 ADO对象模型关系14.1 基础知识概述(1) Connection 对象用于管理与数据库的连接, 通过连接可从应用程序访问数据源,包括打开和关闭连接以及运行SQL命令等,它保存诸如指针类型、连接字符串、查询超时、连接超时和缺省数据库这样的连接信息。它包含了关于目标数据库数据提供程序的相关信息。(2)Command 对象包含关于某个命令,例如查询字符串、参数定义等的信息。(3)Recordset对象用
5、来存储数据操作返回的记录集。Recordset对象只代表一个记录集,这个记录集可以是一个数据库中的表,或者是Command对象的执行结果返回的记录集。在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。Recordset对象用于指定行、移动行、添加、更改、删除记录。14.1 基础知识概述(4)Field 对象Field 对象对应于数据库表的字段或SQL查询语句Select关键字之后跟随着的域,宽限包含记录集中数据的某单个列的信息。(5) Error对象包含数据提供程序出错时的扩展信息。(6) Parameter 对象Paramet
6、er 对象用于管理基于参数化查询或存储过程的Command对象相关联的某个参数或自变量的信息,这类Command对象有一个包含其所有Parameter 对象的 Parameters 集合。(7) Property对象包含某个 ADO 对象的提供程序定义的特征。掌握其中的Command、Connection、Recordset对象就可以实现基本的数据库操作。14.1.2 ADO的编程模型ADO编程模型描述了使用ADO对象进行编程所必须的几个重要步骤:1.连接数据源利用Connection对象的Open方法可以创建一个数据源的连接。 语法:Connection对象.Open ConnectionS
7、tring, UserID, PassWord, OpenOptions其中:Connection对象为定义的Connection对象的实例;ConnectionString为可选项,包含了连接的数据库的信息; UserID 可选项,包含建立连接的用户名; PassWord为可选项,包含建立连接的用户密码;14.1.2 ADO的编程模型2.打开记录集对象(1)方法一:语法:Recordset.Open Source, ActiveConnection, CursorType, LockType, Options 其中:Recordset为所定义的记录集对象的实例。 Source可选项,指明了所
8、打开的记录源信息。 ActiveConnection可选项,合法的已打开的Connection对象的变量名或者是包含ConnectionString参数的字符串。 CursorType可选项,确定打开记录集对象使用的指针类型。 LockType可选项, 确定打开记录集对象使用的锁定类型。14.1.2 ADO的编程模型(2)方法二:语法:Set Recordset=Connection.Execute_ (CommandText,RecordsAffected,Options) 其中: CommandText 一个字符串,返回要执行的SQL命令、表名、存储过程或指定文本。 RecordsAffe
9、cted 可选项,Long类型值,返回操作影响的记录数。Options 可选项,Long类型值,指明如何处理CommandText参数。 打开Recordset对象之后,我们就可以使用它的addnew、delete、update、movenext、find等方法了。 14.1.2 ADO的编程模型3.添加记录添加新记录的AddNew方法语法:Recordset.AddNew Fields, Values 其中:Recordset为记录集对象实例 Fields为一个字段名,或者是一个字段数组。 Values为给要加信息的字段赋的值,如果Fileds为一个字段名,那么Values应为一个单个的数值
10、。假如Fileds为一个字段数组,那么Values必须也为一个个数,类型与Fields相同的数组。 使用AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中。14.1.2 ADO的编程模型4.修改记录集 用SQL语句将要修改的字段的一个数据找出来重新赋值。5.删除记录的Delete方法 语法:Recordset.Delete AffectRecords其中:AffectRecords参数是确定Delete方法作用的方式的。它的取值如下: adAffectCurrent 只删除当前的记录。 adAffectGroup 删除符合Filter属性设置的那些记录。为
11、了一次能删除一组数据,应设置Filter属性。6.查询记录(1)方法一:使用连接对象的Execute方法执行SQL命令,返回查询记录集。(2)方法二: 使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集。14.1.2 ADO的编程模型7.断开连接 在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序. 使用的方法为:Close方法。语法: ADO对象.Close 14.2 ADODC控件 14.2.1 ADODC控件在VB中,使用ADO访问数据库主要有两种方式,一种是使用ADO数据控件,通过对
12、控件的绑定来访问数据库中的数据,即非编程访问方式;另一种是使用ADO对象模型,通过定义对象和编写代码来实现对数据的访问,即编程访问方式,以下我们先介绍使用ADODC控件对数据库进行访问。 1ADODC控件几个重要的与数据库有关的属性,如表14-1所示: 14.2 ADODC控件 表 14-1 ADO控件属性CommandType指示命令类型。取值为:1 adCmdText SQL 语句2 adCmdTable 表4 adCmdStoredProc存储过程8 adCmdUnknown 其他类型ConnectionString支持连接字符串的OLEDB提供程序(打开属性页-通用)。Connecti
13、onTimeou在中止前等待打开连接的时间量(单位秒)。CursorLocation决定时使用服务器端游标还是客户端游标(使用哪个游标引擎) 。取值为:2 adUseServer3 adUseClientCursorType设置用于下一级Recordset的游标类型。取值为:1 adOpenKeyset2 adOpenDynamic3 adOpenStaticPassword密码-支持密码的OLEDB提供程序。(打开属性页-身份验证)RecordSourceRecordset源(adCommandText=SQL或者其它命令语法,adCommandTable=表名称。) (打开属性页-记录源)
14、UserName用户名称-支持用户名称的OLEDB提供程序 14.2 ADODC控件 2ADODC控件常用的方法(1)Refresh方法。该方法用于刷新与ADODC控件连接的记录集数据。(2)UpDateRecord方法通过此方法可以将数据绑定控件上的当前内容写入到数据库。(3)Close方法Close方法主要用于关闭打开的对象及相关对象。3ADODC控件的事件ADODC控件的事件分为两种类型即:Will事件和Complete事件。其中Will事件是在操作开始之前调用,这时可能检查或修改操作参数,并且可以决定是取消操作还是允许完成操作。而Complete事件是在操作完成之后调用。 14.2 A
15、DODC控件 (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.2 AD
16、ODC控件 (2)WillChangField事件和FieldChangComplete事件 WillChangeField 在Recordset对象中Field属性值更改之前调用。而FieldChangeComplete 在Recordset对象中Field属性值更改之后调用。 执行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.UpdateBatch、Recordset.CancelBatch 等方法时触发。 (3)WillChangRecordSet事件 WillChangRecordSet发生在对Re
17、cordset对象进行操作之前,而RecordSetChangComplete发生对Recordset对象进行操作之后。 14.2.2 数据绑定控件1数据绑定简述ADODC控件只能连接数据库,产生记录集。但不能显示记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。 数据库记录集数据绑定图 14-3 数据绑定与数据库和记录集关系图 14-3 数据绑定与数据库和记录集关系14.2.2 数据绑定控件数据绑定控件具有DataSource、DataField属性的控件均可作为绑定控件(2)常用绑定控件ComBox,Label,TextBox等控件是较为常用的数据绑定控件。14.2.2
18、数据绑定控件(3)专门与ADO控件绑定的ActiveX控件DataList 数据列表控件我们在下一节将专门介绍ADO控件与DataList控件结合显示数据。DataGrid 数据网格控件我们在下一节将专门介绍ADO控件与DataGrid控件结合显示数据。DataCombo 数据组合控件(4)高级数据绑定控件Mi crosoft Hierarchical FlexGfid 分层式网格控件Microsoft Chart 图表控件以上控件中数据网格控件和图表控件可以绑定到整个记录集,而其他控件只能绑定到记录集的某一个字段。14.2.2 数据绑定控件2数据绑定方法(1)添加控件首先添加ADODC控件及
19、绑定控件添加到窗体上。(2)设置ADODC控件属性设置ADODC控件的ConnectionString,RecordSource,Password,UserName属性,连接数据库。(3)设置绑定控件的DataSource属性将绑定控件的DataSource属性设为ADODC控件的名称。(4)设置绑定控件的DateField属性将绑定控件的DateField属性设为要显示的字段名称。完成上述步骤后,即可通过绑定控件将数据显示。14.3在Visual Basic中使用ADO对象14.3.1非编程访问方式我们以SQL Server 2000数据库为例。使用ADODC控件,快速创建数据绑定控件和数据
20、提供者之间的连接。其中数据绑定控件可以是任何具有DataSource属性的控件;数据提供者可以是任何符合OLE DB规范的数据源。14.3.1非编程访问方式ADODC控件和DataList控件应用实例(1)建立login数据库首先启动SQL Server 2000企业管理器,建立一个login的数据库,在 login数据库中建立“用户信息”数据表,如图14-4所示:图 14-4 SQL Server 2000企业管理器建立数据库和数据表14.3.1非编程访问方式(2)添加ADODC控件ADODC 控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”“部件”菜单选项,
21、选中“Microsoft ADO Data Control 6.0(OLE DB)”后,按“确定”,此时ADO数据控件便出现在工具箱中,如图14-5所示:图 14-5 添加ADODC控件14.3.1非编程访问方式(3)设置ADODC连接属性将ADODC控件添加到窗体上,其默认的名称属性为“Adodc1”。右击ADODC 控件,选“ADODC属性”,弹出“属性页”对话框,如图14-6所示:图 14-6 设置ADODC控件ConnectionString属性点击 弹出属性页面,选择“通用”,选中“使用连接字符串”(也可以选择“ODBC数据源名称”),再单击“生成”按钮,弹出“数据链接属性”对话框。
22、选择“提供程序”选项卡,在列表中选择“Microsoft OLE DB Provider For SQL SERVER”选项,如图14-7所示,再单击“下一步”按钮。 图 14-7 选择OLE DB提供程序14.3.1非编程访问方式14.3.1非编程访问方式指定服务器的名称和登录信息并选择本连接要使用的数据库文件。单击“测试连接”按钮以确定连接是否正常。若得到测试成功的消息,单击“确定”按钮以继续,如图14-8所示。服务器名称:机器名实例名图 14-8 设置数据连接属性14.3.1非编程访问方式(4)设置AD0DC数据源属性在“属性页”对话框中选择“记录源”选项卡,在命令类型下拉列表中选择“2
23、-adCmdTable”选项,在表或存储过程名称下拉列表中选择数据表“用户信息”。(若选择的命令类型为“1-adCmdText”,则可在命令文本框中输入SQL查询语句,SELECT * from 用户信息),然后单击“确定”按钮,如图14-9所示:图 14-9 设置记录源14.3.1非编程访问方式(5)在窗体上添加数据绑定控件我们使用DataList数据绑定控件。DataList 控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”“部件”菜单选项,选中“Microsoft DataList Control 6.0(SP3)”后,按“确定”,此时DataList控件
24、便出现在工具箱中。图 14-9 将添加DataLIst控件添加到工具箱14.3.1非编程访问方式(6)设置DataList属性 将DataList与ADODC1进行绑定,如图14-10所示:图 14-10 设置DataList属性14.3.1非编程访问方式(7)运行程序将数据表信息通过绑定控件DataList显示,如图14-11所示:图 14-11 在DataList控件中显示用户名14.3.1非编程访问方式2ADODC控件和DataGrid控件应用实例(1)建立login数据库首先启动SQL Server 2000企业管理器,建立一个login的数据库,在login数据库中建立“用户信息”数
25、据表。(2)添加ADODC控件并设置属性方法同ADODC控件和DataList控件应用实例,不再详细介绍。(3)添加DataGrid控件在窗体上添加ADO专用绑定控件DataGrid控件。DataGrid控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:单击“工程”“部件”菜单选项,选中“Microsoft DataGrid Control 6.0(SP6)”后,按“确定”,此时DataList控件便出现在工具箱中,如图14-12所示:图 14-12 添加DataGrid控件14.3.1非编程访问方式设置DataGrid属性DataGrid控件DataSource属性如图14
26、-13所示: 图 14-13 设置DataGrid的DataSource属性14.3.1非编程访问方式进行数据绑定数据:右键单击DataGrid控件,选择“检索字段”,进行数据绑定,也可以选择“属性DataField”进行绑定。(4)运行程序运行程序后,将数据表的信息通过数据绑定控件DataGrid显示出来,如图14-14所示:图 14-14 在DataGrid控件中显示数据表“用户信息”14.3.1非编程访问方式通过ADODC控件与DataList控件及ADODC控件与DataGrid控件结合,可实现SQL Server数据库login中“用户信息”表中数据的浏览功能。ADODC控件还可以和
27、TextBox控件、DataCombo控件结合,显示数据表数据。14.3.1编程访问方式编程访问方式是使用ADO 对象模型访问数据库。为了能够在程序中使用ADO对象编程,在连接数据库前,需要在Visual Basic 6.0菜单 “工程”“引用”中选择Microsoft ActiveX Data Objects 2.8 Library组件。运用ADO对象模型的主要元素:Connection(连接)中的ConnectionString属性进行连接,ConnectionString为可读写string类型,指定一个连接字符串,告诉ADO如何连接数据库。14.3.1编程访问方式1定义ADO对象用于设
28、置打开连接和产生记录集(1)声明语句如下: Dim conn As New ADODB.Connection 定义连接对象 Dim rs As New ADODB.Recordset 定义记录集对象(2)创建对象实例定义ADO对象实例,声明了对象以后,还需要创建对象实例,否则不能使用。以下是两条重要语句:Set conn =New ADODB.Connection 创建conn对象Set rs =New ADODB.Recordset 创建rs对象14.3.1编程访问方式2数据库连接设置Connection对象实例ConnectionString属性连接到数据库。有两种方法:有源数据库连接和无
29、源数据库连接(1)有源数据库连接有源数据库连接首要任务是要注册数据源名称(DSN),通过配置ODBC环境,进行数据源的注册,然后才能对数据源进行连接、访问和操作。以连接数据源login为实例进行操作:14.3.1编程访问方式启动ODBC在Windows XP点击“开始”“控件面板”“性能和维护”管理工具,出现如下界面: 图 14-15 ODBC界面14.3.1编程访问方式添加“用户DSN”双击“数据源(ODBC)”,出现如下界面,选择“用户DSN”,点击“添加”,如图14-16所示: 图 14-16 添加用DSN14.3.1编程访问方式选择数据源的驱动程序数据源驱动程序选择“SQL Serve
30、r”,如图14-17所示:图 14-17 选择数据源的驱动程序14.3.1编程访问方式数据源命名给数据源命名为Login,如图14-18所示:服务器名称:机器名实例名图 14-18 给数据源命名14.3.1编程访问方式注:服务器名根据实际情况填写:机器名实例名测试数据源:图 14-19 数据源测试14.3.1编程访问方式(2)无源数据库连接与有源数据库连接的区别在于不需要配置ODBC,不使用DSN。提供连接所需要的特定信息包括服务器名称:“机器名实例名”用户名:“sa”口令可为空与数据库“login”建立的连接代码如下: conn.ConnectionString=driver=sql ser
31、ver;_server=机器名实例名;Uer Id=sa;pwd=;Database=login打开连接对象设置好连接属性后,就可以打开连接对象了。代码如下: conn.Open这样,VB和后台SQL Server数据库的连接就创建好了。14.3.3实例操作1有源数据库连接(1)创建“标准EXE”工程,工程命名为login(2)引用 “Microsoft ActiveX Data Object 2.0 Library”(3)创建模块文件选择“工程”“添加模块”,在模块中输入代码:Public conn As New ADODB.Connection 标记新连接对象Public rs As AD
32、ODB.Recordset 标记新记录集对象14.3.3实例操作(4)创建登录窗体界面选择“工程”“添加窗体”,在VB窗体中添加两个标签控件、两个文件框控件和一个命令按钮控件,窗体界面如图14-20: 图 14-20 登录窗体界面14.3.3实例操作有源数据库连接主要代码Dim conn As New ADODB.Connection 定义连接对象Dim rs As ADODB.Recordset 定义记录集对象窗体加载代码:Private Sub Form_Load()Set conn = New ADODB.Connection 设置conn实例对象Set rs = New ADODB.R
33、ecordset 设置rs实例对象conn.ConnectionString = DSN=login;User_ ID=sa;Password=;database=login; conn.ConnectionTimeout = 30conn.OpenEnd Sub14.3.3实例操作其中有源数据库连接:DSN数据源是“Login”用户名是“sa”口令为空与数据库“login”建立的连接代码:conn.ConnectionString=DSN=Login;User ID=sa;PWD=;database=login;命令按钮代码:Private Sub Command1_Click()rs.Open select * from 用户信息 where 用户名= & Text1.Text & _and 密码= & Text2.Text & , conn, adOpenstate, adLockOptimistic,_ adCmdText14.3.3实例操作If rs.EOF = True ThenMsgBox 请重新输入学号或密码!Text1.Text = Text2.Text = Text1.SetFocusElseMsgBox 登录成功End Ifrs.CloseUn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学必修一全套教育课件
- 外贸合同cif完整版3篇
- 2024年度版权转让合同的转让范围与权益变更3篇
- 心脏瓣膜病的日常护理
- 河南师范大学《中国近现代史纲要》2021-2022学年第一学期期末试卷
- 糖尿病自身抗体谱
- 物联网智慧医疗方案
- 招聘话术培训
- 甲亢的护理小讲课
- 开饭店合伙人协议书
- 上海市虹口中学2025届高三压轴卷数学试卷含解析
- 九年级全套课件教学课件教学课件教学
- 长春工程学院《西方文明史》2023-2024学年第一学期期末试卷
- 北京市五十六中学2024-2025学年七年级上学期期中数学试题
- 8.1 国家好 大家才会好(教学课件)-八年级道德与法治上册同步备课系列(统编版)
- 管理学基础知识考试题库(附含答案)
- 2024年辅警招考时事政治考题及答案(168题)
- 2024年“国际档案日”档案知识竞赛题目和答案
- 2024年广西普法云平台考试答案
- 2023-2024学年广东省深圳市福田区八年级(上)期末英语试卷
- 河南省安阳市林州市湘豫名校联考2024-2025学年高三上学期11月一轮诊断考试 英语 含解析
评论
0/150
提交评论