掌握VB中的ADO數據對象編程
那天聽到一位同學說他的女朋友是學新聞的可也學會了 數據庫 ,可學計算機的自己卻還是不會,總覺得有點汗顏.在各網站的論壇上,也??吹骄W友對數據庫的一些操作很難把握.我想簡單的介紹一下 VB 中關于ADO對象的一些常識,供同學們參考.其實本人也是剛剛懂了一點,
那天聽到一位同學說他的女朋友是學
新聞的可也學會了
數據庫,可學計算機的自己卻還是不會,總覺得有點汗顏.在各網站的
論壇上,也??吹骄W友對
數據庫的一些操作很難把握.我想簡單的介紹一下
VB中關于ADO對象的一些常識,供同學們參考.其實本人也是剛剛懂了一點,拼湊出這篇文章,希望高手們看了不要見笑,但同時也希望對初學者有所幫助。
ADO是ActiveX Data Objects 的縮寫,是一項新的數據庫的存取技術。相對于VB5.0中的DAO他具有更為簡化的對象模型,無論是存取本地的還是遠程的數據,都提供了一致的接口.就我本人而言,ADO的確比DAO要好用得多。
今天只就ADO的對象模型談一談.ADO定義了一個可
編程的對象集合.ADO對象模型如圖所示:
 javascript:DrawImage(this);" border="0" twffan="done"/>
|
對于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方法。
語法:
clearcase/" target="_blank" >cccccc" width="90%" align="center" bgcolor="#e1e1e1" border="1">
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對象的簡單
知識與基本用法,并賦上我的一點經驗供大家參考。
原文轉自:http://www.anti-gravitydesign.com
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97
|