VB & 資料庫互動(二)——經典五執行個體總結

來源:互聯網
上載者:User

    上一篇講到了VB與資料庫互動的必備知識,這張從經典執行個體的方向出發,講述一些經典的代碼。

 

     1,在系統登入的例子中:

      
a,建立資料庫連接,和執行查詢命令:

'建立資料庫連接 set objcn=new Connection'執行個體化Connection對象objcn.ConnectionString = "Provider=Microsoft.jet.OLEDB.3.51;" & _                         "Data Source =" & App.Path & "\執行個體1.mdb" '串連資料庫,包括串連方式和資料來源路徑objcn.Open'執行查詢命令,獲得使用者登入口令strSQL = "select 口令 from 系統使用者 where 使用者名稱='" & UserName & "'"Set objrs.ActiveConnection = objcnobjrs.Open (strSQL)

    
b,關閉資料庫,釋放對象:

objcn.CloseSet objrs = NothingSet objcn = Nothing

 

 

     
2.在記錄瀏覽例子中:

            a,顯示目前記錄:

txtUserName = objrs.Fields("使用者名稱").ValuetxtPassword = objrs.Fields("口令").Valuetxtmsg = objrs.AbsolutePosition & "/" & objrs.RecordCount

       
b ,向前向後翻記錄:

objrs.MovePrevious'使前一記錄成為目前記錄
'如果記錄指標指向第一個記錄之前,則使其指向第一個記錄集。Ifobjrs.BOF Then objrs.MoveFirst     objrs.MoveNext'使下一記錄成為目前記錄If objrs.EOF Thenobjrs.MoveLast
 

      
d.更新儲存記錄:

objrs.Fields("使用者名稱").Value = txtUserNameobjrs.Fields("口令").Value = txtPasswordobjrs.Update '執行更新操作

 

     

 

         3,在資料繫結瀏覽記錄執行個體中,主要使用了ADO Data控制項

       這個例子主要是通過ADD Data控制項將資料庫和VB控制項串連起來了,通過ADDData控制項的前後按鈕,就可以將資料庫中資料瀏覽的很好!

      

 

 

       4,在分頁顯示記錄中,

       使用了DataGrid控制項來顯示資料,中間通過一個新的記錄集,將分頁的資料傳到Data Grid 控制項上,這樣來實現分頁顯示資料的。

 

     在這裡我想說一下datagrid控制項和msflexgrid控制項的區別:

         在分頁顯示記錄中需要顯示目前記錄頁資料,方法一:使用DataGrid控制項;DataGrid控制項可顯示記錄集中的全部資料,所以不能直接將分頁的記錄集綁定到DataGrid控制項,需要先將目前記錄頁中的記錄複製到一個新的記錄集中,再將其綁定到DataGrid控制項,便可顯示目前記錄也資料。方法二:使用MSFlexGrid控制項;其可在設計時將其綁定到Data控制項,在運行時,則可通過設定控制項的TextMatrix屬性來顯示資料。MSFlexGrid控制項比較靈活因為其有TextMatrix屬性(設定和返回控制項任意儲存格的常值內容),所以在做顯示資料時,直接可通過迴圈在其中填充資料(資料有靈活性,可填充一部分,也可全部填充,所以分頁顯示效果較容易實現)。

 

       
a,建立一個局部recordset對象儲存objrs目前記錄頁資料:

Dim objdatasource As New RecordsetFor intRecord = 0 To objrs.Fields.Count - 1     objdatasource.Fields.Append objrs.Fields(intRecord).Name, adVarChar,                     objrs.Fields(intRecord).DefinedSize Next

       b,將當前頁的記錄資料寫到objDataSource中:

For intRecord = 1 To objrs.PageSize '將目前記錄頁中資料寫入objdatasource中    objdatasource.AddNew    objdatasource!使用者名稱 = objrs!使用者名稱    objdatasource!口令 = objrs!口令 ' 驚嘆號“!”常用於當一個控制項作為一個特性訪問的情況下,      '例如如引用Fomr2中Text1文字框文字屬性時,可採用response$=Form2!text1.text文法格式。    objdatasource!身份 = objrs!身份    objrs.MoveNext    If objrs.EOF Then Exit For Next

   

 

 

         
5,在資料查詢執行個體中,本例使用了ADO Command對象建立參數查詢。

           a,建立執行參數查詢的Command對象objcmd:

Set objcmd = New Command '建立執行參數查詢的command對象objcmdSet objcmd.ActiveConnection = objcnWith objcmd      .CommandText = "select * from 系統使用者 where 使用者名稱 like?" & "and 身份 like?"      .CommandType = adCmdTextEnd With

     
b,使用command對象 createparameter建立參數對象,然後將其添加到command對象的parameters集合中。

 Dim parm As New ParameterSet parm = objcmd.CreateParameter("使用者名稱", adVarChar, adParamInput, 10)objcmd.Parameters.Append parmSet parm = objcmd.CreateParameter("身份", adVarChar, adParamInput, 10)objcmd.Parameters.Append parm

     

    
c,獲得查詢參數,執行查詢結果:

 Dim objrs As New Recordset '定義局部記錄集對象objcmd("使用者名稱") = "%" & txtuser & "%" '獲得查詢參數,%作用是,取只有包含txtuser字串的即可objcmd("身份") = "%" & txtstatus & "%"Set objrs = objcmd.Execute() '執行查詢,獲得查詢結果記錄集MSFlexGrid1.Cols = objrs.Fields.Count

   d,顯示列名,和查詢結果:

'顯示列名For i = 0 To objrs.Fields.Count - 1    MSFlexGrid1.TextMatrix(0, i) = objrs.Fields(i).NameNext'顯示查詢結果n = 0While Not objrs.EOF        MSFlexGrid1.AddItem (objrs.Fields(0) & vbTab & objrs.Fields(1) & vbTab & objrs!身份)             '在這裡objrs.fields(0)和objrs!使用者名稱  的效果是相同的       n = n + 1       objrs.MoveNextWend

        這些代碼都是一些經典的實現部分,非常有用,為我們後邊的學生資訊系統會打下很好的基石!就像我們蓋房子一樣,這些都是磚瓦泥灰,是我們砌成高樓大廈的基礎!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.