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與資料庫學習總結部落格
專案說明 本階段初步接觸程式語言,是 行動下移 思想上移 的突出體現過程,敲 過程中收穫的不僅僅是乙個個實現的程式,更重要的是其凝練出的思想精華。本階段會讓學員初步接觸程式語言,是 行動下移 思想上移 的突出體現過程,敲 過程中收穫的不僅僅是乙個個實現的程式,更重要的是其凝練出的思想精華。通過資料庫...