Upload
brone
View
35
Download
1
Embed Size (px)
DESCRIPTION
Visual Basic 程式設計. 講師:戴志華 [email protected] 國立台灣大學電機工程研究所. 第十五章 資料庫 III 與軟體開發流程. 使用 ADO 物件. 優點: 使用範圍廣 較有彈性 Project/References/Microsoft ActiveX Data Object 2.5 Library. ADO 物件模型. Connection 物件 Recordset 物件 Command 物件. Connection. 表示一個通往資料來源的開啟連線 資料庫 ODBC 來源 - PowerPoint PPT Presentation
Citation preview
6
Connection(cont’d)
Dim 變數名 As New Connection方法: Open ConnectionString
ConnectionString 可參考 Adodc與資料庫建立連線
Close關閉連線
Execute 命令 , 影響的記錄數量 , 命令種類
7
Connection(cont’d)
Dim con As New ConnectionDim conStr As StringDim numRec As IntegerconStr=“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\class13.mdb;Mode=Read|Write;Persist Security Info=False”con.Open conStrcon.Execute(delete * from student where name like ‘王 %’)con.Close
8
Connection(cont’d)
Provider : OLE DB Provider 名稱Data Source: 所要連結的 SQL Server 或 MDB 資料的名稱DSN : 註冊在現行機器上的 ODBC 來源名稱Password : 使用者密碼User ID : 使用者名稱Persist Security Info : 若 ADO 將使用者 ID 與密碼存在 Data Link 中的話,此值為 True 。
10
Connection(cont’d)Dim con As New ConnectionDim conStr As StringDim numRec As IntegerDim rs As New RecordSetconStr=“Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\testdb.mdb;Mode=Read|Write;Persist Security Info=False”con.Open conStrSet rs=con.Execute(“select * from student where name like ‘王 %’”, numRec, adCmdText)con.Close
若 SQL 用 Select ,會產生 RecordSet 物件
表示被此命令所影響的記錄筆數 Command
Type
11
RecordSet
資料庫取得的資料放在 recordset 中
屬性BOF 是否在 Recordset 的頭EOF 是否在 Recordset 的尾Fields Recordset 中的資料
Id Name
00001 李小輝00002 連阿戰
cursor
12
RecordSet(cont’d)
使用 Connection.Execute 產生的RecordSet 的 Cursor 不能向前移方法MoveFirst Cursor 移到最前
面MoveLast Cursor 移到最後
面MoveNext Cursor 向後移MovePrevious Cursor 向前移
經驗,不一定永遠對
13
RecordSet(cont’d)Dim con As New ConnectionDim conStr As StringDim rs As RecordsetconStr = “………………………………………”con.Open conStrSet rs = con.Execute("select * from student” _ , , adCmdText)Print rs.Fields(0)rs.MoveNextPrint rs.Fields(”name")rs.MovePreviousPrint rs.Fields("id")
Error
14
RecordSet(cont’d)Dim con As New ConnectionDim conStr As StringDim rs As New RecordsetconStr = “……………………………………”con.Open conStrrs.ActiveConnection = conrs.CursorType = adOpenStaticrs.Open "select * from student"Print rs.Fields(0)rs.MoveNextPrint rs.Fields("au_id")rs.MovePreviousPrint rs.Fields("au_id")
ok
15
CursorType
0-adOpenForwardOnly Recordset只能向下移動而已1-adOpenKeyset
Recordset的 Cursor可以自由的上下移動2-adOpenDynamic
3-adOpenStatic
26
系統設計 (cont’d)
Command3_Click() 與資料庫連線 產生 SQL query 把傳回的 RecordSet 存到記憶體中 中斷與資料庫的連線 顯示第一筆資料 ( 呼叫 display)
28
系統實作Private Sub Command3_Click() Dim con As New Connection Dim conStr As String Dim rs As New Recordset conStr = <<略 >> con.Open conStr rs.ActiveConnection = con rs.CursorType = adOpenStatic rs.Open <<略 >> records = rs.GetRows() recNo = rs.RecordCount index = 0 display con.CloseEnd Sub
29
系統實作 (cont’d)Dim records As VariantDim index As IntegerDim recNo As IntegerPrivate Sub display() Text1.Text = records(0, index) Text2.Text = records(1, index) Text3.Text = records(2, index)End SubPrivate Sub Command1_Click() If (index > 0) Then index = index - 1 display End IfEnd Sub
30
系統實作 (cont’d)
Private Sub Command2_click() If (index < recNo - 1) Then index = index + 1 display End IfEnd Sub