




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第八章 數(shù)據(jù)庫應用程序的設計,瞿斌 主講,第八章 數(shù)據(jù)庫應用程序的設計,VB6.0提供的數(shù)據(jù)庫訪問技術(shù)及可訪問的數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫應用程序概述 數(shù)據(jù)控件Data和Adodc 數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件 數(shù)據(jù)網(wǎng)格控件DataGrid,DBGrid,8.1 VB6.0提供的數(shù)據(jù)庫訪問技術(shù)及可訪問的數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫訪問技術(shù) 1) 數(shù)據(jù)訪問對象DAO 2) 遠程數(shù)據(jù)對象RDO 3) 開放式數(shù)據(jù)庫互連ODBC 4) ActiveX數(shù)據(jù)對象ADO 可訪問的數(shù)據(jù)庫 1 JET數(shù)據(jù)庫,即Microsoft Access 2 ISAM數(shù)據(jù)庫,如:dBase,F(xiàn)oxPro等 3 ODBC數(shù)據(jù)庫,凡是遵循OD
2、BC標準的客戶/服務器數(shù)據(jù)庫。如:Microsoft SQL Server、Oracle,數(shù)據(jù)庫系統(tǒng) DBS,一、數(shù)據(jù)庫系統(tǒng)(DataBase System, DBS)的組成,計算機硬件 Hardware,數(shù)據(jù)庫 Database,DB,數(shù)據(jù)庫管理系統(tǒng) Soft ware,應用程序 Application,用戶 User,存儲數(shù)據(jù)庫及運行DBMS的硬件資源,包括主機、存儲設備、IO通道等。,負責數(shù)據(jù)庫存取、維護和管理的軟件資源,以一定方式組織在一起、存儲在外部存儲設備上、能共享、與應用程序獨立的相關(guān)數(shù)據(jù)集合,在DBMS基礎(chǔ)上,由用戶開發(fā)的、能處理特定業(yè)務的應用程序,管理、開發(fā)、使用數(shù)據(jù)庫系統(tǒng)的
3、所有人員,數(shù)據(jù)庫管理員 應用程序員 終端用戶,8.2 數(shù)據(jù)庫應用程序概述,硬件,OS,語言編譯 DBMS,應用程序,軟硬件的層次關(guān)系,8.2 數(shù)據(jù)庫應用程序概述,二、數(shù)據(jù)庫的基本概念 數(shù)據(jù)庫的特點 數(shù)據(jù)結(jié)構(gòu)化 數(shù)據(jù)獨立性 數(shù)據(jù)共享 數(shù)據(jù)模型 層次模型 網(wǎng)狀模型 關(guān)系模型,8.2 數(shù)據(jù)庫應用程序概述,3. 數(shù)據(jù)庫管理系統(tǒng)DBMS 數(shù)據(jù)描述語言DDL 數(shù)據(jù)操縱語言DML 數(shù)據(jù)庫管理功能 小型數(shù)據(jù)庫管理系統(tǒng):Access, dBase Btrieve, VFP, Paradox 大型數(shù)據(jù)庫管理系統(tǒng): SQL Server, SyBase, Oracle, IBM DB2,8.2 數(shù)據(jù)庫應用程序概述,
4、三、結(jié)構(gòu)化的查詢語言SQL:定義、操縱、查詢 命令動詞:Select, Update, Insert, Delete, Create, Drop 對象:數(shù)據(jù)庫、表、視圖、字段等 介詞子句:From, Into 限定符:where條件 或 on 條件 順序限定符:order by 或group by 如:Select 學號,姓名,班級,出生日期 from stud Delete * from stud where 班級 = “信管001”,8.2 數(shù)據(jù)庫應用程序概述,四、開放式數(shù)據(jù)庫連接ODBC簡介 ODBC是微軟提出的允許利用SQL語句查詢數(shù)據(jù)的一種標準, 它可為數(shù)據(jù)庫應用程序與數(shù)據(jù)庫建立連接
5、提供公共編程接口 ODBC的體系結(jié)構(gòu),8.2 數(shù)據(jù)庫應用程序概述,ODBC數(shù)據(jù)源的創(chuàng)建和應用,8.2 數(shù)據(jù)庫應用程序概述,五、規(guī)劃和創(chuàng)建數(shù)據(jù)庫和表,8.3 數(shù)據(jù)控件Data和Adodc,一、Data控件的功能 建立應用程序與數(shù)據(jù)庫的連接通道 二、 Data控件的主要任務 與本地或遠程數(shù)據(jù)庫連接 基于SQL查詢, 打開指定的數(shù)據(jù)庫表或定義記錄集 傳送數(shù)據(jù)字段的值到綁定的控件上 根據(jù)綁定控件的數(shù)據(jù)變化,插入或更新數(shù)據(jù)庫記錄 捕獲訪問數(shù)據(jù)時出現(xiàn)的錯誤 關(guān)閉數(shù)據(jù)庫,8.3 數(shù)據(jù)控件Data和Adodc,三、Data控件的主要屬性 Name: Data控件的名稱 DatabaseName:確定數(shù)據(jù)控件訪
6、問哪一個數(shù)據(jù)庫, 如: Data1.DatabaseName = “H:myvbTongxunlu.mdb” RecordSource:確定數(shù)據(jù)控件的記錄集,即:所要訪問的數(shù)據(jù)內(nèi)容。它可以是一個表名、存儲查詢名或SQL語句。 如: Data1.RecordSource = Register 或 Data1.RecordSource =“SELECT *FROM Register WHERE BIRTHDAY#1/1/1973#,8.3 數(shù)據(jù)控件Data和Adodc,Connect: 指定打開的數(shù)據(jù)庫類型,并且包括參數(shù),如用戶和口令等。 1) 打開Access數(shù)據(jù)庫(缺?。?CONNECT=“A
7、CCESS” 2) 打開ODBC數(shù)據(jù)庫 CONNECT=“ODBC;uid = 用戶名;pwd=口令; dsn =數(shù)據(jù)源名; Database=數(shù)據(jù)庫路徑;Driver = 驅(qū)動程序名” RecordType: 確定記錄集Recordset對象的類型 0-Table 表 1-Dynaset 動態(tài)集,數(shù)據(jù)庫表或查詢結(jié)果 2-Snapshot 快照類型,記錄集合的靜態(tài)副本,可用于查詢 和生成報表,8.3 數(shù)據(jù)控件Data和Adodc,四、 Data控件的記錄集RecordSet對象:數(shù)據(jù)庫表內(nèi)的記錄集合或查詢所得的記錄結(jié)果集合 1) 記錄集對象的賦值: Set Data1.Recordset =
8、MyRecordSet 2) 利用記錄集對象訪問某些字段 Data1.Recordset(“姓名”) = “李明” Data1.Recordset(“年齡”) = 23 Data1.RecordSet.Update,8.3 數(shù)據(jù)控件Data和Adodc,五、Data控件常用的數(shù)據(jù)綁定控件 綁定控件 可以綁定的字段數(shù)據(jù)類型 CheckBox 邏輯型或具有開關(guān)屬性的字段 Image 位圖文件或長二進制型圖片文件字段 Label 數(shù)值、日期、字符串型字段 PictureBox 位圖文件或長二進制型圖片文件字段 TextBox 數(shù)值、日期、字符串型字段 ComboBox 數(shù)值、日期、字符串型字段 Li
9、stBox 數(shù)值、日期、字符串型字段 OLE容器控件 照片、電子表格、Word文檔等OLE字段,8.3 數(shù)據(jù)控件Data和Adodc,數(shù)據(jù)綁定控件的數(shù)據(jù)識別屬性 DataChanged: 指示綁定控件內(nèi)顯示的數(shù)據(jù)是否發(fā)生變化 DataSource:指定要綁定的Data控件名 DataField:指定Data控件內(nèi)的有效字段 數(shù)據(jù)綁定控件應用實例,8.3 數(shù)據(jù)控件Data和Adodc,六、Data控件操縱的數(shù)據(jù)集的常用方法和事件 AddNew方法:添加一個新記錄到數(shù)據(jù)庫中 注意:當Data控件的EOFAction屬性設置為2時, 若移動數(shù)據(jù)超過最后的記錄時,Data控件將自動創(chuàng)建新記錄 Data
10、1.Recordset.AddNew Edit方法:編輯修改一條已經(jīng)存在的字段 Data1.Recordset.Edit ! ChineseName = “李明” !用于引導緩沖區(qū)記錄的字段名 ! OfficePhone = “ 80798461” Data1.RecordSet.Update Update方法:更新記錄集,若修改顯示在綁定控件內(nèi)的某條記錄的數(shù)據(jù)后,使用data控件向前向后移動,這是系統(tǒng)自動調(diào)用Update方法處理已修改的記錄,8.3 數(shù)據(jù)控件Data和Adodc,Delete方法:刪除當前記錄 Data1.Recordset.Delete MoveFirst, MoveLas
11、t, MoveNext, MovePrivous 方法:移動當前記錄 if Data1.Recordset.BOF Then MsgBox “前面沒有記錄”,48,”前移操作” Exit Sub Else Data1.Recordset.MovePrivous,8.3 數(shù)據(jù)控件Data和Adodc,FindFirst, FindLast, FindNext, FindPrivous方法:在記錄集內(nèi)查找記錄 Data1.Recordset.FindFirst “ChineseName= 李* ” Data1.Recordset.FindLast “ChineseName= 李* ” Data1.
12、Recordset.FindNext “ChineseName= 李* ” Data1.Recordset.FindPrivous “ChineseName= 李* ” Refresh方法:用于記錄集刷新,當記錄集為查詢的結(jié)果集時,如果結(jié)果集發(fā)生變化,需調(diào)用refresh方法關(guān)閉并重新打開結(jié)果集 Data1.RecordSource = select * from contact where ChineseName = & Text10.Text & “ Data1.Refresh,8.3 數(shù)據(jù)控件Data和Adodc,Seek方法:在表型記錄集中定位記錄 表名.seek 比較字符串 關(guān)鍵字值
13、1,關(guān)鍵字值2 使用書簽Bookmark移動到指定的記錄位置 記錄集的Bookmark屬性主要保存當前記錄指針 Dim myBookmark as Variant myBookmark = data1.Recordset.Bookmark Data1.Recordset.MoveFirst data1.Recordset.Bookmark = myBookmark,8.3 數(shù)據(jù)控件Data和Adodc,七、Adodc控件 Adodc是基于ADO對象的數(shù)據(jù)控件,使用方法與Data控件差不多,但Data是基于DAO的。 ADO可訪問本地數(shù)據(jù)庫,也可訪問遠程數(shù)據(jù)庫。ADO是以后發(fā)展的趨勢,將替代DA
14、O和RDO。 ADO(Active Data Objects):ADO 實 際 是 一 種 提 供 訪 問 各 種 數(shù) 據(jù) 類 型 的 連 接 機 制。 ADO 是 基 于OLE-DB 之 上 的 技 術(shù), 它 通 過 其 內(nèi) 部 的 屬 性 和 方 法 提 供 統(tǒng) 一 的 數(shù) 據(jù) 訪 問 接 口 方 法。不 止 適 合 于SQL Server、Oracle、Access 等 數(shù) 據(jù) 庫 應 用 程 序, 也 適 合 于Excel 表 格、 文 本 文 件、 圖 形 文 件 和 無 格 式 的 數(shù) 據(jù) 文 件。 DAO(Data Access Objects): 是 一 種 面 向 對 象 的
15、 界 面 接 口。 通 過Jet 功 能 可 以 訪 問ISAM 數(shù) 據(jù) 庫, 使 用DAO/ ODBC Direct 功 能 可 以 實 現(xiàn) 遠 程RDO 功 能。,8.3 數(shù)據(jù)控件Data和Adodc,1. Adodc控件的主要屬性 ConnectionString:設定與數(shù)據(jù)源連接的字符串。 ConnectionTimeout:等待連接成功的時間(秒)。超時將出錯。 RecordSource:記錄集的數(shù)據(jù)源,指定要訪問的記錄集數(shù)據(jù)內(nèi)容。 CommandType:指明形成記錄集的命令的類型,1-adCmdText表示形成記錄集的是SQL命令,2-adCmdTable表示記錄集由表構(gòu)成,4-
16、adCmdStoredProc由存儲過程生成記錄集,8-adCmdUnknown未知命令類型。 MaxRecord:每次從數(shù)據(jù)庫中取的最大記錄數(shù)。 Mode:數(shù)據(jù)庫打開模式,0是未知;1是只讀;2是寫;3是讀寫;16是可共享讀寫;4是不可共享讀;8是不可共享寫;12是不共享。 RecordSet:記錄集。,8.3 數(shù)據(jù)控件Data和Adodc,ConnectionString屬性的設置-1:,8.3 數(shù)據(jù)控件Data和Adodc,ConnectionString 屬性的設置-2:,8.3 數(shù)據(jù)控件Data和Adodc,ConnectionString 屬性的設置-3:,8.3 數(shù)據(jù)控件Data
17、和Adodc,RecordSource屬性的設置,8.3 數(shù)據(jù)控件Data和Adodc,2. 可與Adodc綁定的控件 所有可與Data綁定的內(nèi)部控件如CheckBox, Image, Label, PictureBox , TextBox, ComboBox, ListBox, OLE容器控件 外部ActiveX控件: DBList, DBCombo,DataList, DataCombo, DataGrid,DataRepeater 注意: DataGrid只能與Adodc控件綁定, 而DBGrid只能與Data控件綁定,8.4數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件,數(shù)據(jù)列表框控件DBList,D
18、ataList 數(shù)據(jù)組合框控件 DBCombo, DataCombo 他們與內(nèi)部ListBox控件以及ComboBox控件的主要區(qū)別是: DBList, DBCombo是VB5.0中增加的ActiveX控件, DataList, DataCombo是VB6.0中增加的ActiveX控件 內(nèi)部ListBox、ComboBox控件必須通過AddItem方法來添加列表項,而數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件可以通過被綁定的數(shù)據(jù)控件的記錄集自動填充列表項目 (見例8-6),8.4數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件,一、數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件的主要屬性 Datasource:指定被綁定的數(shù)據(jù)控件的名稱
19、DataField:指定與Datasource對應的記錄集中的字段 RowSource:指定列表項中數(shù)據(jù)的來源,它可與相應的數(shù)據(jù)控件綁定 ListField:指定列表框中數(shù)據(jù)項的顯示內(nèi)容,它為RowSource對應記錄集的某一個字段 BoundColumn: RowSource對應的記錄集的某一個字段,該字段必須與DataField指定的字段類型相同,以便根據(jù)列表項的選擇更新DataField指定的字段值 ListFieldBoundColumn DataField 見例 8-2,8.4數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件,二、 DBList, DBCombo和DataList, DataCombo
20、 的主要區(qū)別 1) DataList, DataCombo既可與Data控件綁定,又可與Adodc控件綁定,但它們的RowSource, BoundColumn, ListField屬性必須由Adodc控件提供賦值 2) DBList, DBComboke 只能與Data控件綁定,且其RowSource, BoundColumn, ListField屬性只能由Data控件提供賦值。若DBList、DBCombo與Adodc控件綁定,其列表框的值將不能正確顯示。 示例見: 例8-2,8-3, 8-4, 8-5,8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,一、數(shù)據(jù)網(wǎng)格控件DataGrid和
21、 DBGrid的主要功能 以網(wǎng)格表形式顯示被綁定數(shù)據(jù)控件中所對應的記錄集內(nèi)容,且每個單元格都可編輯修改 二、數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid的的主要差別 DataGrid只能與Adodc控件綁定 DBGrid只能和Data控件綁定,8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,三、DataGrid和DBGrid的主要屬性 Datasource:指定被綁定的數(shù)據(jù)控件的名稱 Column對象屬性:設置網(wǎng)格控件各列的屬性,在窗體上選中數(shù)據(jù)網(wǎng)格控件,點擊鼠標右鍵,在快捷菜單中di點擊Edit菜單,使網(wǎng)格空間處于活動狀態(tài)(可編輯狀態(tài)),然后在選中properties菜單項, 即可打開屬
22、性頁,8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,四、DataGrid和DBGrid的其他屬性 AllowAddNew:是否允許向數(shù)據(jù)源中添加行 AllowDelete:是否允許對數(shù)據(jù)源刪除行 AllowUpdate:是否允許用戶修改單元格的值 Columns:返回一個 Column 對象的集合,某個特定的Column 對象可由屬性Col確定, 或由Column(index)確定。(例8-8) Splits:包含所有存儲在 DataGrid 控件中的 Split 對象 SelStartCol, SelEndCol ,SelStartRow, SelEndRow :用來設置第一或最后被選
23、中的列或行, SelStartCol, SelStartRow一起使用可設定選中范圍的左上角, SelEndCol , SelEndRow一起使用可設定選中范圍的右下角 SelbookMarks屬性:返回數(shù)據(jù)網(wǎng)格控件上被選中的記錄的書簽集合(例8-7),8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,五、DataGrid和DBGrid的常用方法 ClearFields方法:清除當前網(wǎng)格設置,恢復默認布局(具有兩空白列),與后面的rebind方法配合 Rebind方法:自動根據(jù)數(shù)據(jù)源進行新列的綁定 HoldFields方法:強制網(wǎng)格使用當前的列/字段布局 ClearSelCols方法:撤銷對拆分中所有列的選擇,如沒有選擇列,不做任何事情 Scroll方法:水平或垂直滾動網(wǎng)格控件 DataGrid1.Scroll 2, 4,行值,列值,見例8-9,8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行培訓學校管理辦法
- 北京出租車行業(yè)管理辦法
- 常德停車管理辦法或條例
- 集團業(yè)務用車管理辦法
- 服務業(yè)人員管理辦法規(guī)定
- 山東機關(guān)停車場管理辦法
- 防沙治沙工程管理辦法
- 直接發(fā)包造價管理辦法
- 銀行班組管理辦法細則
- 互聯(lián)網(wǎng)藥品展示管理辦法
- 上海2025年上海市第一批面向西藏籍畢業(yè)生招聘筆試歷年參考題庫附帶答案詳解
- 鄒平市社區(qū)工作者招聘真題2024
- 公司員工飲水管理制度
- 用柴油管理制度
- 《SketchUp草圖大師教學》課件
- 排水管道檢測與評估課件 項目2 排水管道檢測基礎(chǔ)知識
- 閱讀療法創(chuàng)新發(fā)展
- 第二十章手術(shù)減肥及體形塑造美容手術(shù)美容外科學概論講解
- 中華人民共和國內(nèi)河交通安全管理條例
- 工程施工質(zhì)量檢驗試驗計劃
- 廚房小吃承包合同
評論
0/150
提交評論