VB.NET數(shù)據(jù)庫(kù)開(kāi)發(fā)示例寶典
VB.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解VB.NET數(shù)據(jù)庫(kù)開(kāi)發(fā)了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。下面介紹一個(gè)實(shí)例,來(lái)消化以上的相關(guān)知識(shí)。這里我在一個(gè)程序界面下實(shí)現(xiàn)了DAO,ADO,ODBC,OLEDB四種數(shù)據(jù)庫(kù)訪問(wèn)方式。 VB.NET數(shù)據(jù)庫(kù)開(kāi)發(fā)程序代碼分析:
- '整個(gè)程序功能是選擇不同的連接方式來(lái)進(jìn)行顯示工作,三種方式顯示效果完全相同
- '下面是主程序過(guò)程
- Private Sub Command1_Click()
- Dim selitem As Integer
- '判斷連接數(shù)據(jù)庫(kù)的方式
- If Option1.Value = True Then
- selitem = 1
- Else
- If Option2.Value = True Then
- selitem = 2
- Else
- selitem = 3
- End If
- End If
- '選取不同的數(shù)據(jù)庫(kù)連接方式
- Select Case selitem
- Case 1:
- '使用DAO的數(shù)據(jù)庫(kù)連接方式
- Call ShowByDAO
- Case 2:
- '使用ADO的數(shù)據(jù)庫(kù)連接方式
- Call ShowByADO
- Case 3:
- '使用ODBC的數(shù)據(jù)庫(kù)連接方式
- Call ShowByODBC
- Case 4:
- '使用OLEDB的數(shù)據(jù)庫(kù)連接方式
- Call ShowByOLEDB
- End Select
- End Sub
- Private Sub ShowByDAO()
- '使用DAO的數(shù)據(jù)庫(kù)連接方式
- Dim db As Database
- Dim rs As Recordset
- Dim sqlstr$ '存放查詢語(yǔ)句
- Set db = OpenDatabase(App.Path & "\db1.mdb")
- sqlstr = "select * from 成績(jī)表"
- Set rs = db.OpenRecordset(sqlstr)
- '顯示結(jié)果
- Call GridShow(rs)
- End Sub
- Sub ShowByADO()
- Dim conn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- '使用數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)
- conn.Open "dsn=data"
- rs.CursorType = adOpenKeyset
- rs.LockType = adLockOptimistic
- rs.Open "select * from 成績(jī)表", conn
- Call GridShowOfADO(rs)
- End Sub
- Sub ShowByODBC()
- Dim conn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- '使用數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)
- conn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=data"
- rs.Open "select * from 成績(jī)表", conn
- '顯示結(jié)果
- Call GridShowOfADO(rs)
- End Sub
- Sub ShowByOLEDB()
- Dim conn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- '使用數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)
- conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\db1.mdb" + ";Persist Security Info=False"
- rs.Open "select * from 成績(jī)表", conn'顯示結(jié)果
- Call GridShowOfADO(rs)
- End Sub
- Sub GridShow(rs As Recordset)
- '對(duì)dao方式進(jìn)行顯示工作
- MSFlexGrid1.TextMatrix(0, 0) = "姓名"
- MSFlexGrid1.TextMatrix(0, 1) = "性別"
- MSFlexGrid1.TextMatrix(0, 2) = "語(yǔ)文"
- MSFlexGrid1.TextMatrix(0, 3) = "數(shù)學(xué)"
- MSFlexGrid1.TextMatrix(0, 4) = "英語(yǔ)"
- rs.MoveLast
- MSFlexGrid1.Rows = rs.RecordCount + 1
- MSFlexGrid1.Cols = rs.Fields.Count
- Dim i%
- i = 1
- rs.MoveFirst
- While (Not rs.EOF)MSFlexGrid1.TextMatrix(i, 0) = rs.Fields(0)
- MSFlexGrid1.TextMatrix(i, 1) = rs.Fields(1)
- MSFlexGrid1.TextMatrix(i, 2) = rs.Fields(2)
- MSFlexGrid1.TextMatrix(i, 3) = rs.Fields(3)
- MSFlexGrid1.TextMatrix(i, 4) = rs.Fields(4)
- rs.MoveNext
- ii = i + 1
- 'If (rs.EOF = True) Then
- ' Exit For
- Wend
- End Sub
- Sub GridShowOfADO(rs As ADODB.Recordset)
- '對(duì)ado方式進(jìn)行顯示工作
- MSFlexGrid1.TextMatrix(0, 0) = "姓名"
- MSFlexGrid1.TextMatrix(0, 1) = "性別"
- MSFlexGrid1.TextMatrix(0, 2) = "語(yǔ)文"
- MSFlexGrid1.TextMatrix(0, 3) = "數(shù)學(xué)"
- MSFlexGrid1.TextMatrix(0, 4) = "英語(yǔ)"
- '注意recordcount屬性必須在當(dāng)前記錄指針在最后一條記錄時(shí)才會(huì)返回正確的值
- rs.MoveLast
- MSFlexGrid1.Rows = rs.RecordCount + 1
- MSFlexGrid1.Cols = rs.Fields.Count
- Dim i%
- i = 1
- rs.MoveFirst
- While (Not rs.EOF)
- MSFlexGrid1.TextMatrix(i, 0) = rs.Fields(0)
- MSFlexGrid1.TextMatrix(i, 1) = rs.Fields(1)
- MSFlexGrid1.TextMatrix(i, 2) = rs.Fields(2)
- MSFlexGrid1.TextMatrix(i, 3) = rs.Fields(3)
- MSFlexGrid1.TextMatrix(i, 4) = rs.Fields(4)
- rs.MoveNext
- ii = i + 1
- Wend
- End Sub
- Private Sub Command2_Click()
- End
- End Sub
上述代碼已經(jīng)在Windows 2000 professional和Visual Basic 6.0的環(huán)境下調(diào)試成功,喜歡VB.NET數(shù)據(jù)庫(kù)開(kāi)發(fā)的朋友不防試試。
【編輯推薦】