VB 資料庫互動(二) 經典五例項總結

2021-06-08 05:18:49 字數 4325 閱讀 4042

vb與資料庫互動的必備知識,這張從經典例項的方向出發,講述一些經典的**。

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

建立資料庫連線,和執行查詢命令

:

'建立資料庫連線

set objcn=new connection'例項化connection物件

objcn.connectionstring = "provider=microsoft.jet.oledb.3.51;" & _

objcn.open

'執行查詢命令,獲得使用者登入口令

strsql = "select 口令 from 系統使用者 where 使用者名稱='" & username & "'"

set objrs.activeconnection = objcn

objrs.open (strsql)

b,

關閉資料庫,釋放物件:

objcn.close

set objrs = nothing

set objcn = nothing

2.在記錄瀏覽例子中:

a,顯示當前記錄:

txtusername = objrs.fields("使用者名稱").value

txtpassword = objrs.fields("口令").value

txtmsg = objrs.absoluteposition & "/" & objrs.recordcount

b ,向前向後翻記錄:

objrs.moveprevious'使前一記錄成為當前記錄
'如果記錄指標指向第乙個記錄之前,則使其指向第乙個記錄集。

ifobjrs.bof then objrs.movefirst

objrs.movenext'使下一記錄成為當前記錄

if objrs.eof thenobjrs.movelast

d.

更新儲存記錄:

objrs.fields("使用者名稱").value = txtusername

objrs.fields("口令").value = txtpassword

objrs.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 recordset

for intrecord = 0 to objrs.fields.count - 1

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物件objcmd

set objcmd.activeconnection = objcn

with objcmd

.commandtext = "select * from 系統使用者 where 使用者名稱 like?" & "and 身份 like?"

.commandtype = adcmdtext

end with

b,使用

command

物件createparameter

建立引數物件,然後將其新增到

command

物件的parameters

集合中。

dim parm as new parameter

set parm = objcmd.createparameter("使用者名稱", advarchar, adparaminput, 10)

set parm = objcmd.createparameter("身份", advarchar, adparaminput, 10)

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).name

next

'顯示查詢結果

n = 0

while not objrs.eof

msflexgrid1.additem (objrs.fields(0) & vbtab & objrs.fields(1) & vbtab & objrs!身份)

'在這裡objrs.fields(0)和objrs!使用者名稱 的效果是相同的

n = n + 1

objrs.movenext

wend

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

資料庫五個經典例項

建立資料庫鏈結,需要用到 connection 物件,recordset 物件。對資料庫進行操作,需要用到 command 物件,parameter 物件。這兩個物件成對出現。connection recordset 記錄集物件,用於儲存來自資料庫中物件返回的結果。記錄的集合 command 物件 ...

VB與資料庫學習專案總結

歷時8月,進入提高班的第二個大專案終於完成!說來慚愧,按照培養計畫的時間來算,整個大專案的時間不過49天,而我用了8個月!之前一直感覺是自己學的紮實,所以學得慢,現在發現,不是自己紮實 因為很多之前學的東西到用的時候還是沒想起來 而是自己太拖延了,這一點誰能幫我解決掉。縱觀整個專案 紅皮書例項4.2...

Vb與資料庫學習總結部落格

專案說明 本階段初步接觸程式語言,是 行動下移 思想上移 的突出體現過程,敲 過程中收穫的不僅僅是乙個個實現的程式,更重要的是其凝練出的思想精華。本階段會讓學員初步接觸程式語言,是 行動下移 思想上移 的突出體現過程,敲 過程中收穫的不僅僅是乙個個實現的程式,更重要的是其凝練出的思想精華。通過資料庫...