• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB使用ADODB操作數據庫的常用方法

    發布: 2007-5-25 09:19 | 作者: FieldMAX | 來源: programfan.com | 查看: 121次 | 進入軟件測試論壇討論

    領測軟件測試網 ADO常用方法

    下面是我所掌握的使用ADO對數據庫操作的一些常用方法,主要是提供給初學者作為參考,有不對的地方請指正。如有補充不勝榮幸

    準備工作
    ========


    Dim conn As New  ADODB.Connection  '創建一個 Connection 實例,在這里使用New等于將Dim和Set合并為一段代碼執行
    Dim rs As ADODB.Recordset    '創建一個 Recordset 實例,不使用New 是因為,經常需要重復使用Set,因此沒必要在這里使用
    Dim CnStr As String, Sql As String  '創建兩個字符串變量分別存放兩個集合的SQL語句代碼段


    1、裝載數據庫(不屬于Recordset集合)
    =============
    Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$
    '以上5個字符串變量分別表示文件路徑和文件名、數據庫地址、數據庫名、數據操作員用戶名、操作員密碼

    FileName = App.Path & "\'數據庫名'"
    DbIp = "數據庫地址"
    DbName = "數據庫名"
    DbUser = "數據操作員用戶名"
    DbPw = "操作員密碼"
    '以上變量根據數據庫類型的不同而不同,有可能只需要1至兩個變量

    '1)連接Access數據庫:
    '-------------------
    CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" & FileName & ";Jet OLEDB:Database Password=" & DbPw

    '2)連接Oracle數據庫:
    '-------------------
    CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data Source=" & FileName & ";Persist Security Info=True"

    '其中:
    'PASSWORD:      密碼
    'User ID:       用戶號
    'Data Source:   數據庫名
    'Persist Security Info:
    'Provider:

    '3)連接VF的DBF庫:
    '----------------
    CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" & DbUser & ";SourceDB=" & FileName &

    ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"

    '4)連接SQL的數據庫
    '------------------
    CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQSOFT;SERVER=" &

    DbIP

    '也可以使用這段簡易代碼 CnStr = "Provider=SQLOLEDB;Data Source=" & DbIp & ";DATABASE=" & DbName & ";UID=" & DbUser & ";pwd=" & DbPw

    Conn.Open cnstr '使用 Connection 集合的 Open 方法 與數據庫建立連接

    2、Recordset集合的常用方法
    ==========================

    '1)打開一個表
    '------------

    Sql = "select * from 表名" 'SQL查詢語句
    Set rs = New ADODB.Recordset '新建一個實例
    rs.Open Sql, conn '使用 Open 方法打開數據庫中的一個表

    '注意,這種打開方式只能使用 rs.MoveNext (即,向后移動行坐標)而不能像其他方向,并且不能修改數據內容
    '
    'rs.Open Sql, conn,1 '雖然只加了個“1”,但這種方法可以向任何方向移動行坐標。
    '
    '以下參數代表了這個可選值的含義
    '0 = adOpenForwardOnly (默認值)打開僅向前類型游標。
    '1 = adOpenKeyset       打開鍵集類型游標。
    '2 = adOpenDynamic      打開動態類型游標。
    '3 = adOpenStatic       打開靜態類型游標。
    '
    '雖然使用以上方法可以可以實現行坐標(游標)的任意移動,但是仍然無法寫入數據。因此需要進一步的對Open 方法進行完善

    'rs.Open Sql, conn, 1, 3  '后面的3是確定讀寫權限的

    '以下參數代表了這個可選值的含義
    '1 = adLockReadOnly        (默認值)只讀 — 不能改變數據。
    '2 = adLockPessimistic     保守式鎖定(逐個) — 在編輯時立即鎖定數據源的記錄。
    '3 = adLockOptimistic      開放式鎖定(逐個) — 只在調用 Update 方法時才鎖定記錄。
    '4 = adLockBatchOptimistic 開放式批更新 — 用于批更新模式(與立即更新模式相對)。
    '
    '2)讀寫數據
    '----------
    '增加一行記錄并對新記錄的內容進行修改并保存可以如下寫法
    rs.AddNew '增加一行記錄
    rs("...")="..."    '數據讀寫操作
    ...
    rs.UpDate '保存寫入資料,如果使用只讀權限,則不能使用這個方法
    rs.Close  '這個方法用來關閉你所代開的表,如果不使用這個方法也可以,但是數據庫仍然認為你在對標進行鎖定,可造成數據庫負擔過重

    2、對數據進行篩選和排序
    =======================
    Sql = "select * from 表名" 'SQL查詢語句
    '以上為打開一個表的所有內容

    Sql = "select top 50 * from 表名" 'SQL查詢語句
    '以上為只打開前50行的記錄

    Sql = "select top 50 列名1,列名2,列名5 from 表名" 'SQL查詢語句
    '以上為只打開前50行的記錄,并且只打開第1、2、5列數據

    Sql = "select * from 表名 where 列名1='" & 字段 & "'" 'SQL查詢語句
    '以上為一個簡單的篩選,表示打開的內容必須符合[列名1='" & 字段 & "'"]的內容
    '需要注意的是,數據庫列的類型必須匹配,比如字符串類型需要以單引號括起
    '而數字類型則不能用單引號括起
    '另外SQL語句還支持通配符,例如 列名1 like '%" & 字段 & "%'" 表示包含[字段]
    '在表達式中的匹配
    '? _(下劃線) 任何單一字符
    '* or %        零個或多個字符
    '#             任何單一數字(0 — 9)
    '[charlist]    任何在字符表中的單一字符
    '[!charlist]   任何不在字符表中的單一字符
    '注:根據數據庫的不同?、_和*、%的應用有所差別,比如SQL只使用% 和 _ 分別代表多個字符和單一字符

    Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 ASC" '對查詢結果進行升序排列
    Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 DESC"  '對查詢結果進行降序排列
    Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 DESC, ORDER BY 字段2 DESC"  '對查詢結果進行多維降序排列(速度奇慢,不推薦使用)

    3、Recordset集合的常用屬性方法
    ==============================
    rs.BOF        '是否游標在最上邊
    rs.EOF        '是否游標在最下邊
    rs.RecordCount    '記錄集的行數(如果使用像前類型的游標,可能返回不準確)
    rs.AddNew    '新建一行記錄
    rs.Update    '保存當前行被修改的記錄
    rs.Delete    '刪除當前行
    rs.Close    '關閉記錄集

    4、Fields集合的一些屬性的解釋
    =============================
    '以下為簡寫,正常情況需要rs.Fileds.。。。但是Fields屬于Recordset的一個默認集合,因此可以省略

    rs()  '括號內可以是列名也可以是列的序號例如:rs("姓名")、rs(3) 都是是可以的

    rs(3).Name  '返回列名
    rs(3).Type  '返回列的類型
    rs(3).Value '返回當前行的值
    rs.Fields.Count '返回列數

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>