VB語言使用ADO連接、操作SQLServer數(shù)據(jù)庫教程
幾年前學(xué)過的VB幾乎忘光了,這幾天復(fù)習(xí)了下。VB連接ADO數(shù)據(jù)庫并不是非常難。
連接第一步(要仔細(xì)看)
對于小白來講,這里的教程最詳細(xì),連接ADO數(shù)據(jù)庫第一步,要添加什么部件呢?全稱是Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件。
在Microsoft ADO Data Control 6.0 (SP6) (OLEDB)部件里有一個名叫:Adodc數(shù)據(jù)控件,要將它添加。在Adodc數(shù)據(jù)控件數(shù)據(jù)位置中找到ACCES。
控件引用的方法(值指的是姓名)
For i = 1 To Adodc1.Recordset.RecordCount
If Not Adodc1.Recordset.EOF Then
Combo1.AddItem Adodc1.Recordset.Fields("值").Value
Adodc1.Recordset.Movenext
End If
Next i
該代碼引用的編寫者是ydl890406大大,在VB群中寫這東西時,讓我借用了,后來我發(fā)現(xiàn)有很多錯誤,y大神修改幾次后的還是有錯誤,干脆重寫了一遍,這就是后來的代碼。時間過去的很快,VB群也解散了。后來不知為何,現(xiàn)在很多的教程都用了這段代碼。
第二部分是AOD的代碼連接,由于第二部分涉及到Recordset對象和Connection對象,自己學(xué)一下,完全可以自己編寫。
何為Recordset對象和Connection對象,Connection對象是與數(shù)據(jù)源的連接,Recordset對象是操作數(shù)據(jù)。
尋找Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件
VB用ADO連接SQLServer數(shù)據(jù)庫
'數(shù)據(jù)源信息常量 Public Const conn As String = "Provider = SQLOLEDB.1;Password = sa; UserID = sa; Initial Catalog = StudentFiles; Data Source = localhost" Public Const CONNECT_LOOP_MAX = 10 '一次執(zhí)行connect操作,可以訪問數(shù)據(jù)庫的次數(shù) Private IsConnect As Boolean '標(biāo)記數(shù)據(jù)庫是否連接 Private Connect_Num As Integer '標(biāo)記執(zhí)行Connect()函數(shù)后訪問數(shù)據(jù)的次數(shù) Private cnn As ADDODB.Connection '連接數(shù)據(jù)庫的Connect對象 Private re As ADDODB.Recordset '保存結(jié)果集的Recordset對象 //連接數(shù)據(jù)庫 Private Sub Connect() '如果連接標(biāo)記為真,則返回。 IF IsConnect = True Then Exit Sub End If Set cnn = New ADODB.Connection '關(guān)鍵new用于創(chuàng)建新對象cnn cnn.ConnectionString = conn cnn.Open '判斷連接的狀態(tài) If cnn.State <> adStateOpen Then MsgBox"數(shù)據(jù)庫連接失敗" End End If '設(shè)置連接標(biāo)識,表示已經(jīng)連接到數(shù)據(jù)庫 IsConnect = True End Sub '斷開與數(shù)據(jù)庫的連接 Private Sub DisConnect() Dim rc As Long If IsConnect = False Then Exit Sub End If '關(guān)閉連接 cnn.Close '釋放cnn Set cnn = Nothing IsConnect = False End Sub '使用Connect_Num控制數(shù)據(jù)連接 Public Sub DB_Connect() Connect_Num = Connect_Num + 1 Connect End Sub '使用Connect_Num控制數(shù)據(jù)斷開 Public Sub DB_Disconnect() If Connect_Num >= CONNECT_LOOP_MAX Then Connect_Num = 0 Disconnect End If End Sub '強(qiáng)制關(guān)閉api方式訪問俄的數(shù)據(jù)庫,計數(shù)器復(fù)位 Public Sub DBapi_Disconnect() Connect_Num = 0 Disconnect End Sub '執(zhí)行數(shù)據(jù)庫操作語言 'byval 就是按參數(shù)的值傳遞,再傳遞過程中,參數(shù)不會發(fā)生變化(也就是將參數(shù)值而不是將地址傳遞給過程的方式,這就使過程訪問發(fā)哦變量的副本,過程不可改變變量的值); 與之對應(yīng)的是byref,指按參數(shù)的地址傳值,byref可以省略 Public Sub SQLExt(ByVal TmpSQLstmt As String ) Dim cmd As New ADODB.Command '創(chuàng)建Command對象cmd DB_Connect '連接數(shù)據(jù)庫 Set cmd.ActiveConnection = cnn '設(shè)置cmd的ActiveConnect屬性,指定與其關(guān)聯(lián)的數(shù)據(jù)庫連接 cmd.CommandText = TmpSQLstmt '設(shè)置要執(zhí)行的命令文本 'MsgBox TmpSQLstmt cmd.Execute '執(zhí)行命令 Set cmd = Nothing DB_DisConnect '斷開與數(shù)據(jù)庫的連接 End Sub '執(zhí)行數(shù)據(jù)庫查詢語句 Public Function QueryExt(ByVal TmpSQLstmt As String ) As ADODB.Recordset Dim rst As New ADODB.Recordset '創(chuàng)建Rescordset對象rst DB_Connect '連接數(shù)據(jù)庫 Set rst.ActiveConnection = cnn '設(shè)置rst的ActiveConnection屬性,指定與其相關(guān)的數(shù)據(jù)庫的連接 rst.CursorType = adOpenDynamic '設(shè)置游標(biāo)類型 rst.LockType = adLockOptimistic '設(shè)置鎖定類型 rst.Open TmpSQLstmt '打開記錄集 Set QueryExt = rst '返回記錄集 End Function
上一篇:VB讀取線程、句柄及寫入內(nèi)存的API代碼實(shí)例
欄 目:vb
下一篇:VB6實(shí)現(xiàn)連接Access數(shù)據(jù)庫的ADODB代碼實(shí)現(xiàn)方法
本文標(biāo)題:VB語言使用ADO連接、操作SQLServer數(shù)據(jù)庫教程
本文地址:http://mengdiqiu.com.cn/a1/vb/7215.html
您可能感興趣的文章
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBScript教程 第七課使用條件語句
- 01-10VBScript教程 第十四課在VBScript中使用對象
- 01-10MsgBox函數(shù)語言參考
- 01-10VBScript教程 第八課 使用循環(huán)語句
- 01-10VBS教程:正則表達(dá)式簡介 -使用正則表達(dá)式
- 01-10VBS教程:對象-Class 對象
- 01-10VBS教程:VBScript 基礎(chǔ)-使用循環(huán)語句
- 01-10VBS教程:在 VBScript 中使用對象
- 01-10RCMD使用說明


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實(shí)例說明
隨機(jī)閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)