学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> VB >> 掌握VB中的ADO数据对象编程


掌握VB中的ADO数据对象编程


  那天听到一位同学说他的女朋友是学新闻的可也学会了数据库,可学计算机的自己却还是不会,总觉得有点汗颜.在各网站的论坛上,也常看到网友对数据库的一些操作很难把握.我想简单的介绍一下VB中关于ADO对象的一些常识,供同学们参考.其实本人也是刚刚懂了一点,拼凑出这篇文章,希望高手们看了不要见笑,但同时也希望对初学者有所帮助。

  ADO是ActiveX Data Objects 的缩写,是一项新的数据库的存取技术。相对于VB5.0中的DAO他具有更为简化的对象模型,无论是存取本地的还是远程的数据,都提供了一致的接口.就我本人而言,ADO的确比DAO要好用得多。

  今天只就ADO的对象模型谈一谈.ADO定义了一个可编程的对象集合.ADO对象模型如图所示:

按此在新窗口打开图片

  对于ADO其中对象来说,我觉得比较重要的是:Command,Connection,Recordset对象。

  虽然严格的说这是不准确的,但根据我的实际经验确实如此.下面就分别来谈一下。

  (1) Connection对象

  Connection对象用于建立与数据库的连接.通过连接可从应用程序访问数据源.它保存诸如指针类型,连接字符串,查询超时,连接超时和缺省数据库这样的连接信息.

  (2) Command对象

  在建立Connection后,可以发出命令操作数据源.一般情况下,Command对象可以在数据库中添加,删除或更新数据,或者在表中进行数据查询.Command对象在定义查询参数或执行一个有输出参数的存储过程时非常有用。

  (3) Recordset对象

  Recordset对象只代表一个记录集,这个记录集是一个连接的数据库中的表,或者是Command对象的执行结果返回的记录集.在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的.Record对象用于指定行,移动行,添加,更改,删除记录。

  下面就具体地说说如何用ADO存取数据:

  在实际编程过程中使用ADO的一个典型的存取数据的步骤为:

  (1) 连接数据源

  (2) 打开记录集对象

  (3) 使用记录集

  (4) 断开连接

  那么具体怎么是用呢?分别来看。(我在最后将给出一个完整的使用ADO的实例给大家参考.)

  (1) 如何连接数据源

  利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法。

  语法:

Connection对象.Open ConnectionString, UserID, PassWord, OpenOptions

  其中:

  ·Connection对象为你定义的Connection对象的实例;

  ·ConnectionString为可选项,包含了连接的数据库的信息;

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

  ·PassWord为可选项,包含建立连接的用户密码;

  ·OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开.

  (2)打开记录集对象

  实际上记录集返回的是一个从数据库取回的查询结果集.因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法。

  (a)记录集的Open方法

  语法:

Recordset.Open Source, ActiveConnection, CursorType, LockType, Options

  其中:

  ·Recordset为所定义的记录集对象的实例。

  ·Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名。

  ·ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串。

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

  ·LockType可选项 确定打开记录集对象使用的锁定类型。

  (b)Connection对象的Execute方法

  语法:

Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)

  参数说明:

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

  ·RecordsAffected 可选项,Long类型的值,返回操作影响的记录数。

  ·Options 可选项,Long类型值,指明如何处理CommandText参数。

  介绍完了如何打开数据库下面说说怎么使用吧.

  (3)使用记录集

  (a)添加新的记录:

  在ADO中添加新的记录用的方法为:AddNew 它的语法为:

  Recordset.AddNew FieldList, Values

  ·Recordset为记录集对象实例

  ·FieldList为一个字段名,或者是一个字段数组.

  ·Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么 Values必须也为一个个数,类型与FieldList相同的数组。

  再用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.不过你最好在用UpDate方法之前使用CancelUpdate方法来取消该项操作。

  (b)修改记录集

  其实修改核对记录集中的数据重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段的一个数据找出来重新赋值就可以了.这里不再细说了。

  (c)删除记录

  在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了.
它的语法如下:

Recordset.Delete AffectRecords

  其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下:

  ·adAffectCurrent 只删除当前的记录

  ·adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.

  (d)查询记录

  在ADO中查询的方法很灵活,有几种查询的方法.

  ·使用连接对象的Execute方法执行SQL命令,返回查询记录集.

  ·使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.

  第一个方法的具体语法在前面数据连接时已经介绍过了,下面就第二方法具体说一下.

  Command对象的Execute方法的语法如下:

Command.Execute RecordsAffected, Parameters, Options '不返回记录集
或者 Set Rscordset=cmmnad.Execute(RecordsAffected,Parameters,Options) '返回记录集

  CommandText的语法为:

Command.CommandText=stringvariable

  其中: stringvariable为字符串变量,包含SQL语句,表名或存储过程.

  (4) 断开连接

  在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序。

  使用的方法为:Close方法。

  语法如下:

Object.Close ' Object为ADO对象

  好了,说了那么多的理论,下面我们就应用一下吧!

软件频道精品推荐

更多精彩
点击体验>>

  下面我给出一个我自己写的实例,是一个用户登录,注册,密码修改,用户删除的应用小程序.你也可以到本版的下载仓库中下载.

  具体实现方法:

  在本程序中包括了四个窗体.

  ·一个用于用户登录,名字为:FormDengLu;

  ·一个用于用户注册,名字为:FormZhuCe;

  ·另一个为用于用户修改密码,名字为:FormXiuGai;

  ·最后一个用于用户删除,名字为:FormShanChu.

  下面进行ADO对象的定义与设置,不过在这之前你必须在工程中引用ADO对象.

  定义ADO对象:

Dim ZhuCe As ADODB.Connection ' ZhuCe为连接对象
Dim rstZhuCe As ADODB.Recordset 'rstZhuCe为记录集对象
Dim cmmZhuCe As ADODB.Command 'cmmZhuCe为命令对象

  在Form_Load过程中应进行如下的ADO设置:

Set ZhuCe = New ADODB.Connection '设置连接对象实例
ZhuCe.CursorLocation = adUseClient
'打开数据源连接
ZhuCe.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=App.Path\注册.mdb"
'设置记录集对象实例
Set rstZhuCe = New ADODB.Recordset
Set rstZhuCe.ActiveConnection = ZhuCe
'打来记录集
rstZhuCe.Open "select * from 注册", ZhuCe, adOpenStatic, adLockOptimistic
'设置命令对象实例
Set cmmZhuCe = New ADODB.Command
Set cmmZhuCe.ActiveConnection = ZhuCe

  添加新的用户信息(原码)

If TextYongHuMing.Text = "" Or TextMiMa.Text = "" Or _
 TextTiShiWenTi.Text = "" Or TextTiShiDaAn.Text = "" Then
 MsgBox "笔添信息没有添完,请输入完全", vbOKOnly + vbExclamation, "提示"
Else
 If TextJiaoYan.Text = TextMiMa.Text Then
  rstZhuCe.MoveLast '记录集中的移动方法,指针移动到记录集的末尾
  rstZhuCe.AddNew '添加新的记录
  rstZhuCe!用户名 = TextYongHuMing.Text
  rstZhuCe!密码 = TextMiMa.Text
  rstZhuCe!姓名 = TextXingMing.Text
  rstZhuCe!昵称 = TextNiCheng.Text
  rstZhuCe!联系地址 = TextLianXiDiZhi.Text
  rstZhuCe!邮政编码 = TextYouBian.Text
  rstZhuCe!OICQ = TextOICQ.Text
  rstZhuCe!电子邮件 = TextMail.Text
  rstZhuCe!呼机 = TextHuJi.Text
  rstZhuCe!手机 = TextShouJi.Text
  rstZhuCe!密码提问 = TextTiShiWenTi.Text
  rstZhuCe!提问答案 = TextTiShiDaAn.Text
  rstZhuCe!电话号码 = TextDianHua.Text
  rstZhuCe.Update '将上面所有的信息存储到数据库中
  MsgBox "注册成功", vbOKOnly + vbInformation, "注册成功"
 Else
  MsgBox "校验密码与密码不一致,请重新输入", vbOKOnly + vbExclamation, _
"密码错误"
  TextMiMa.Text = ""
  TextJiaoYan.Text = ""
 End If
End If

  下面为修改用户密码(在此中我并没用到上面提到的两种方法,但是这种方法也很简单,实际上应该是属于第一种方法.

  代码如下:

Dim a As String
Dim b As String
If TextYongHuMing.Text = "" Or TextMiMa.Text = "" Or TextJiaoYanMiMa.Text = "" Or TextXinMiMa.Text = "" Then
 MsgBox "修改信息填写不完全,请重新填写!", vbOKOnly + vbInformation, "修改错误"
 TextYongHuMing.Text = ""
 TextMiMa.Text = ""
 TextJiaoYanMiMa.Text = ""
 TextXinMiMa.Text = ""
Else
 If TextXinMiMa.Text <> TextJiaoYanMiMa.Text Then
  MsgBox "校验密码与新密码不一致,请重新填写!", vbOKOnly + vbExclamation, "密码错误"
  TextJiaoYanMiMa.Text = ""
  TextXinMiMa.Text = ""
 End If
 a = "select 用户名,密码 from 注册 where 用户名 ='" & _
 TextYongHuMing.Text & _
"' AND 密码 = '" & _
TextMiMa.Text & "';"
 rstZhuCe.Open a, ZhuCe, adOpenKeyset, adLockOptimistic
 rstZhuCe!密码 = TextXinMiMa.Text
 MsgBox "密码修改成功,您的新密码是:" & rstZhuCe!密码 & "!", vbOKOnly + vbInformation, "修改成功"
End If

  也许你这样看起来的确实有点麻烦,不过你可以去下载全部程序,那样看起来比较简单!

  下面是用户的删除.

  代码如下:

Dim a As String
Dim ok As Integer
Dim i As Integer
rstZhuCe.MoveFirst
For i = 0 To rstZhuCe.RecordCount - 1
 If rstZhuCe!用户名 = ComboYongHuMing.Text And rstZhuCe!密码 = TextMiMa.Text Then
  ok = MsgBox("你确定真的要将此用户删除吗?", vbOKCancel + vbQuestion, "提示")
  If ok = 1 Then
   rstZhuCe.Delete adAffectCurrent '删除所找到的用户
   MsgBox "此用户已经成功删除!", vbOKOnly + vbInformation, "删除成功"
  End If
 End If
 rstZhuCe.MoveNext
Next I

  好了到此为止,我向大家介绍了一下ADO对象的简单知识与基本用法,并赋上我的一点经验供大家参考。

软件频道精品推荐

更多精彩
点击体验>>

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

谢谢...
游客 发表于2008-6-24 22:01:59
 也许你这样看起来的确实有点麻烦,不过你可以去下载全部程序,那样看起来比较简单!
   ...
游客 发表于2008-5-22 13:53:51
对"掌握VB中的ADO数据对象编程"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 掌握VB中的ADO数据对象编程 相关内容
Google搜索中 掌握VB中的ADO数据对象编程 相关内容
雅虎中 掌握VB中的ADO数据对象编程 相关内容
Sogou搜索中 掌握VB中的ADO数据对象编程 相关内容

相关软件 最新回复帖子:

·掌握VB中的ADO数据对象编程
·教你如何使用瑞星杀毒软件杀毒
·挖掘Dreamweaver 4.0的“潜力”
·nesox让电子邮件营销原来如此轻松!
·Photoshop打造唯美抽象艺术背景
·3DsMax简单方法创建水蒸汽效果
·缩减Windows Vista系统还原占用空间
·与你共享:一个学生成绩管理系统代码
·Oracle数据库异地自动备份方法介绍
·AutoCAD三维造型--弹簧的简单画法


  相关软件 掌握VB中的ADO数据对象编程相关文章
用VB6.0实现网络实时监控系统 Visual Basic6.0事件机制分析
好文回顾:Visual Basic 十年风云 对VB6的后期绑定和前期绑定的一点看法
用VB设计“投票评选”程序的简单方法 用VB备份和恢复SQL Server数据库的方法
利用Visual Basic开发SAP接口程序初探 在VB环境中操作三维模型的实现方法
基于Visual Basic 6的网络程序设计 VB开发应用软件之写在动手之前
VB第三方控件实现XP资源管理器垂直栏 Viusal Basic程序员的.NET泛型编程
用VB编程实现图像的熠熠生辉效果 VB6中使用错误处理对程序速度的影响
VB实现文字“闪入”显示的特殊效果 用Visual Basic轻松实现看图软件
浅谈用VB6.0编写“特洛伊木马”程序 浅析ADO 事件模型
ADO数据访问模型初学者入门 Visual Basic常用术语释义