資料庫程式設計 VB資料庫設計簡介 週次:5 建國科技大學 資管系 饒瑞佶.

Slides:



Advertisements
Similar presentations
我有一份考工的理论题库,是 Excel 文件。我在想如果转换到 Word 文件中再排版,再印刷,一是浪费时间,既要做成 Word 卷, 测试完还要手工批卷;二是浪费纸张( 4 — 5 个班级近 200 多人使 用),我在想能不能做成上机试卷,在计算机上测试,多方便, 谁能帮我这个忙吗? 我有一份考工的理论题库,是.
Advertisements

主讲:史治平 地址:四川电大计算机教研室 电话:
指導教授 ~ 張志勇 組員: 彭勇盛 陳信通 吳建賦
第13章 数据库的基本应用 Visual Basic 程序设计教程.
第十二章 Recordset对象 Recordset对象是数据记录的集合,而数据记录又是字段集合。因此利用recordset对象,在程序中就可以存取所有数据记录每一个字段的数据了。所以说recordset对象是存取数据库数据最重要的源头。在数据库程序设计中,recordset对象是一个十分重要对象。
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
SQL Structured Query Language 用以操縱資料庫的指令集 資料操作語言DML:操作資料錄
第 11 章 資料庫應用與 ADO物件 製作.
Visual Basic快速入门 ADO数据控件与数据绑定控件 VB数据库编程举例 VB开发数据库应用系统实例分析
資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶.
LINQ 建國科技大學 資管系 饒瑞佶.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
連結資料庫 ACCESS MSSQL.
第八章 利用SELECT查詢資料.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
資料庫操作.
資料庫程式設計 VB資料庫設計簡介 週次:2 建國科技大學 資管系 饒瑞佶.
VB如何存取資料庫 ? 資料庫 資料儲存 資料庫引擎 資料庫引擎 Jet 讀取、寫入與修改 資料控制項 資料庫存取物件(ADO) 使用者介面.
初识Visual Basic.
類別(class) 類別class與物件object.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第9章 访问数据库 9.1 数据库的概念与建立 9.2 用Data控件访问数据库.
第 13 章 深入Recordset物件 製作.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
資料控制項與資料存取物件 資料庫控制項 ( Adodc或DATA ) 提供的功能有限 半自動 方便,使用者不需要額外撰寫程式
網頁切換移轉 JS vs. ASP.NET.
Visual Basic 物件導向程式設計簡介.
PR150 (125K) Reader RS232.
App Inventor2呼叫PHP存取MySQL
資料庫程式設計 VB資料庫設計簡介 週次:6 建國科技大學 資管系 饒瑞佶.
網頁切換移轉 JS vs. ASP.NET.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
資料庫程式設計 VB資料庫設計簡介 週次:3 建國科技大學 資管系 饒瑞佶.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
FileUpload控制項 建國科技大學 資管系 饒瑞佶 2007年.
Pocket Access.
VB2005 DataBase Manipulation Command for Access
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
讓Emulator可以 使用Android Market
第二章、第三章错题分析.
IIS Internet Information Services
期末考.
VB与Access数据库的连接.
挑戰C++程式語言 ──第8章 進一步談字元與字串
Controls.
GridView.
GridView操作 (II).
VB与数据库 数据库连接与查询.
Visual Basic程序设计 第13章 访问数据库
陣列與結構.
JQuery 標籤操作 建國科技大學 資管系 饒瑞佶 2013/4 V1.
第 4 章 認識 SQL 語言與資料型別.
1位选手参加了歌唱比赛,评委们的评分如下:
專案建置與封裝程式 建國科技大學 資管系 饒瑞佶.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
Cloud Training Material- 事件 Sherman Wang
VB与Access数据库的连接.
連結資料庫 MYSQL.
網路程式-ASP 授課:方順展.
多國語系 建國科技大學 資管系 饒瑞佶.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
SQLite資料庫 靜宜大學資管系 楊子青.
Joining Multiple Tables
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

資料庫程式設計 VB資料庫設計簡介 週次:5 建國科技大學 資管系 饒瑞佶

資料控制項與資料存取物件 資料庫控制項 ( Adodc或DATA ) 提供的功能有限 半自動 方便,使用者不需要額外撰寫程式 功能較完整 需要撰寫程式碼 半自動 完全手動 二者可以交互使用

資料控制項與資料存取物件 資料庫控制項 ( Adodc) 直接設定ConnectionString與RecordSource屬性 設定ADO物件後將Recordset物件指定給資料庫控制項(Adodc)

範例5-4 設定DataSource與 DataField屬性 Command1_click

範例5-4 Private Sub Command1_Click() '連結資料庫 Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _ & "Data Source=C:\VB6\DB\Book.mdb" cn.Open '取得資料集 Set rs = New ADODB.Recordset rs.Open "書籍", cn, adOpenStatic ' 設定ADO物件取得資料集 Set adoBook.Recordset = rs End Sub

資料控制項與資料存取物件 範例5-4 顯示元件 如TEXT ADO物件 設定產生Connection與 Recordset物件 範例5-6

範例5-6 設定Datasource與 DataField屬性 Command1_click

範例5-6 Private Sub Command1_Click() '連結資料庫 Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _ & "Data Source=C:\VB6\DB\Book.mdb" cn.Open '取得資料集 Set rs = New ADODB.Recordset rs.Open "書籍", cn, adOpenStatic ' 設定連結控制項的屬性 Set Text1.DataSource = rs Text1.DataField = "書名" Set Text2.DataSource = rs Text2.DataField = "作者" Set Text3.DataSource = rs Text3.DataField = "分類" Set Text4.DataSource = rs Text4.DataField = "出版社“ End Sub

設定產生ConnectionString與 資料控制項與資料存取物件 ADO物件 顯示元件 如TEXT 設定產生Connection與 Recordset物件 範例5-4 範例5-6 ADO物件 顯示元件 如TEXT 設定產生ConnectionString與 RecordSource屬性 範例5-7

範例5-7 Private rs As ADODB.Recordset Private Sub Command1_Click() Set rs = adoBook.Recordset ' 顯示RecordSet 物件的內容 For i = 0 To 4 Picture1.Print rs!書名 rs.MoveNext Next i End Sub

ADO物件對資料庫的操作 操作項目: 資料錄的移動 資料錄的編輯 新增資料錄 刪除資料錄 搜尋資料錄 篩選資料錄 資料排序 對象都是目前紀錄(Current Record)

資料的移動 目前紀錄在資料庫中的移動範圍:BOF~EOF 資料庫最上方 BOF 第一筆 第二筆 .. 最後一筆 資料庫最下方 EOF

資料的移動 使用Move方法 語法:Recordset.Move skipRecords, Start +表示向最後一筆資料方向移動 -表示向第一筆資料方向移動 Start:移動的起始位置,預設為目前紀錄 adBookmarkFirst,以第一筆紀錄為起始點 adBookmarkLast,以最後一筆紀錄為起始點 注意移動過程可能會有超過BOF或EOF的錯誤狀況產生

克服超過BOF或EOF的錯誤 如果超過BOF則將目前紀錄指向最後一筆 如果超過EOF則將目前紀錄指向第一筆 如何指向?

克服超過BOF或EOF的錯誤 移動紀錄了使用Move方法外,還可以使用: MoveFirst:移動指向到第一筆紀錄 MovePrevious:移動指向到前一筆紀錄 MoveNext:移動指向到下一筆紀錄 MoveLast:移動指向到最後一筆紀錄 所以當BOF發生時就使用MoveLast 當EOF發生時就使用MoveFirst 注意CursorType的設定

範例6-2

範例6-2 Private Sub Form_Load() ' 連結資料庫 Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _ & "Data Source=C:\VB6\DB\Book.mdb" cn.Open ' 取得資料集 Set rs = New ADODB.Recordset rs.Open "書籍 ", cn, adOpenStatic ' DataGrid控制項取得資料集以顯示記錄 Set DataGrid1.DataSource = rs End Sub

範例6-2 ' .......Click 按鈕:前一筆 時所觸發的事件程序 Private Sub cmdPrevious_Click() rs.MovePrevious ' 若已移動到檔案的開頭 If rs.BOF = True Then rs.MoveFirst End If End Sub ' .......Click 按鈕:下一筆 時所觸發的事件程序 Private Sub cmdNext_Click() rs.MoveNext ' 若已移動到檔案的結尾 If rs.EOF = True Then rs.MoveLast End If End Sub

資料的移動 Bookmark屬性 Do Until rs.EOF 印出目前紀錄的內容 rs.Movenext Loop 可以列出所有資料的內容

編輯紀錄 Supports方法 判斷目前的資料庫(Recordset物件)是否可以編輯 語法: Boolean=recordset.Supports(CursorOptions) 其中CursorOptions可以是 adUpdate:更新 adAddnew:新增 adDelete:刪除 adMovePrevious:向前移動 adBookmark:標定Bookmark

範例6-5 If rs.supports(adUpdate) then ret=msgbox(“可以進行更新作業”,49,“更新訊息”) Else ret=msgbox(“不可以進行更新作業”,49,“更新訊息”) End if

資料更新 Update方法 可以對資料庫(Recordset物件)進行資料更新 語法: recordset.Update [欄位名稱],[新欄位值] 注意欄位名稱的寫法與資料型態p.6-20

範例6-6 更改book.mdb資料庫中書籍資料表中目前紀錄的 書名欄位值 rs.Update “書名”, Text1.text 欄位值 欄位名 欄位值

新增資料 Addnew方法 可以對資料庫(Recordset物件)進行資料新增作業 語法: recordset.Addnew [欄位名稱],[新欄位值] 注意欄位名稱的寫法與資料型態p.6-20

範例6-7 在book.mdb資料庫中的書籍資料表中新增一筆紀錄 (只新增一個欄位) rs.Addnew “書名”, Text1.text 新增空紀錄(沒有任何欄位資料的紀錄) rs.Addnew rs.Update

範例6-8 在book.mdb資料庫中的書籍資料表中新增一筆紀錄 (新增多個欄位) rs.Addnew rs!書碼=Text1.text ….. rs.Update

刪除資料 Delete方法 可以對資料庫(Recordset物件)進行資料刪除作業 刪除目前紀錄 語法: Recordset.Delete

範例6-9 rs.Delete rs.Movenext If rs.eof then rs.movelast End if 目前紀錄會消失 目前紀錄再度出現 Do Until rs.eof rs.Delete rs.Movenext Loop 刪除所有紀錄

搜尋作業 從資料庫中找到符合條件的資料 Find方法 找出資料庫(Recordset物件)中符合條件的第一筆記錄 語法: Recordset.Find 條件,[Skiprows],[SearchDirection],[start] 找不到資料時會變成EOF或BOF狀態,所以可以藉此 判定是否有找到資料

搜尋作業 語法: Recordset.Find 條件,[Skiprows],[SearchDirection],[start] 其中條件是由欄位,比較運算子與條件值所組成 例如:書名=‘資料庫程式設計’ 文字型態 書碼=1 數字型態 日期=#2003/10/17# 日期時間型態

範例6-11 比較運算子 搜尋相似的而不是完全正確的 使用Like運算子,配合?,*等萬用字元 rs.Find “書名 Like ‘?Basic*’” 範例6-11

搜尋作業 找到符合條件的第一筆記錄後如何找尋其他也符合的 資料? 方法: 設定Skiprows=1 省略start 範例6-12

搜尋後取代 將搜尋(Find方法)與更新(Update方法)結合 範例6-14

篩選作業 從資料庫中找到符合條件的資料 Filter屬性 找出資料庫(Recordset物件)中符合條件的所有記錄 語法: Recordset.Filter 條件 找不到資料時Recordcount會變成0,所以可以藉此 判定是否有找到資料

範例6-16 篩選作業 可以使用複合條件式 And, Or, Not 書名=‘資料庫程式設計’ and日期=#2003/10/17# Rs.Filter=adFilterNone 解除Filter屬性 範例6-16

範例6-19 排序作業 cursorLocation屬性 =3 可以排序 =2 不可以排序 語法: =3 可以排序 =2 不可以排序 語法: Recordset.Sort [sortorder] Sortorder由欄位名及關鍵字組成 Rs.Sort “書名 ASC” Rs.Sort “書名 DESC” 範例6-19