




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第八章 數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì),瞿斌 主講,第八章 數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì),VB6.0提供的數(shù)據(jù)庫訪問技術(shù)及可訪問的數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫應(yīng)用程序概述 數(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) 遠(yuǎn)程數(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標(biāo)準(zhǔn)的客戶/服務(wù)器數(shù)據(jù)庫。如:Microsoft SQL Server、Oracle,數(shù)據(jù)庫系統(tǒng) DBS,一、數(shù)據(jù)庫系統(tǒng)(DataBase System, DBS)的組成,計(jì)算機(jī)硬件 Hardware,數(shù)據(jù)庫 Database,DB,數(shù)據(jù)庫管理系統(tǒng) Soft ware,應(yīng)用程序 Application,用戶 User,存儲(chǔ)數(shù)據(jù)庫及運(yùn)行DBMS的硬件資源,包括主機(jī)、存儲(chǔ)設(shè)備、IO通道等。,負(fù)責(zé)數(shù)據(jù)庫存取、維護(hù)和管理的軟件資源,以一定方式組織在一起、存儲(chǔ)在外部存儲(chǔ)設(shè)備上、能共享、與應(yīng)用程序獨(dú)立的相關(guān)數(shù)據(jù)集合,在DBMS基礎(chǔ)上,由用戶開發(fā)的、能處理特定業(yè)務(wù)的應(yīng)用程序,管理、開發(fā)、使用數(shù)據(jù)庫系統(tǒng)的
3、所有人員,數(shù)據(jù)庫管理員 應(yīng)用程序員 終端用戶,8.2 數(shù)據(jù)庫應(yīng)用程序概述,硬件,OS,語言編譯 DBMS,應(yīng)用程序,軟硬件的層次關(guān)系,8.2 數(shù)據(jù)庫應(yīng)用程序概述,二、數(shù)據(jù)庫的基本概念 數(shù)據(jù)庫的特點(diǎn) 數(shù)據(jù)結(jié)構(gòu)化 數(shù)據(jù)獨(dú)立性 數(shù)據(jù)共享 數(shù)據(jù)模型 層次模型 網(wǎng)狀模型 關(guān)系模型,8.2 數(shù)據(jù)庫應(yīng)用程序概述,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ù)庫應(yīng)用程序概述,
4、三、結(jié)構(gòu)化的查詢語言SQL:定義、操縱、查詢 命令動(dòng)詞:Select, Update, Insert, Delete, Create, Drop 對象:數(shù)據(jù)庫、表、視圖、字段等 介詞子句:From, Into 限定符:where條件 或 on 條件 順序限定符:order by 或group by 如:Select 學(xué)號(hào),姓名,班級,出生日期 from stud Delete * from stud where 班級 = “信管001”,8.2 數(shù)據(jù)庫應(yīng)用程序概述,四、開放式數(shù)據(jù)庫連接ODBC簡介 ODBC是微軟提出的允許利用SQL語句查詢數(shù)據(jù)的一種標(biāo)準(zhǔn), 它可為數(shù)據(jù)庫應(yīng)用程序與數(shù)據(jù)庫建立連接
5、提供公共編程接口 ODBC的體系結(jié)構(gòu),8.2 數(shù)據(jù)庫應(yīng)用程序概述,ODBC數(shù)據(jù)源的創(chuàng)建和應(yīng)用,8.2 數(shù)據(jù)庫應(yīng)用程序概述,五、規(guī)劃和創(chuàng)建數(shù)據(jù)庫和表,8.3 數(shù)據(jù)控件Data和Adodc,一、Data控件的功能 建立應(yīng)用程序與數(shù)據(jù)庫的連接通道 二、 Data控件的主要任務(wù) 與本地或遠(yuǎn)程數(shù)據(jù)庫連接 基于SQL查詢, 打開指定的數(shù)據(jù)庫表或定義記錄集 傳送數(shù)據(jù)字段的值到綁定的控件上 根據(jù)綁定控件的數(shù)據(jù)變化,插入或更新數(shù)據(jù)庫記錄 捕獲訪問數(shù)據(jù)時(shí)出現(xiàn)的錯(cuò)誤 關(guān)閉數(shù)據(jù)庫,8.3 數(shù)據(jù)控件Data和Adodc,三、Data控件的主要屬性 Name: Data控件的名稱 DatabaseName:確定數(shù)據(jù)控件訪
6、問哪一個(gè)數(shù)據(jù)庫, 如: Data1.DatabaseName = “H:myvbTongxunlu.mdb” RecordSource:確定數(shù)據(jù)控件的記錄集,即:所要訪問的數(shù)據(jù)內(nèi)容。它可以是一個(gè)表名、存儲(chǔ)查詢名或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ū)動(dòng)程序名” RecordType: 確定記錄集Recordset對象的類型 0-Table 表 1-Dynaset 動(dòng)態(tài)集,數(shù)據(jù)庫表或查詢結(jié)果 2-Snapshot 快照類型,記錄集合的靜態(tài)副本,可用于查詢 和生成報(bào)表,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 位圖文件或長二進(jìn)制型圖片文件字段 Label 數(shù)值、日期、字符串型字段 PictureBox 位圖文件或長二進(jìn)制型圖片文件字段 TextBox 數(shù)值、日期、字符串型字段 ComboBox 數(shù)值、日期、字符串型字段 Li
9、stBox 數(shù)值、日期、字符串型字段 OLE容器控件 照片、電子表格、Word文檔等OLE字段,8.3 數(shù)據(jù)控件Data和Adodc,數(shù)據(jù)綁定控件的數(shù)據(jù)識(shí)別屬性 DataChanged: 指示綁定控件內(nèi)顯示的數(shù)據(jù)是否發(fā)生變化 DataSource:指定要綁定的Data控件名 DataField:指定Data控件內(nèi)的有效字段 數(shù)據(jù)綁定控件應(yīng)用實(shí)例,8.3 數(shù)據(jù)控件Data和Adodc,六、Data控件操縱的數(shù)據(jù)集的常用方法和事件 AddNew方法:添加一個(gè)新記錄到數(shù)據(jù)庫中 注意:當(dāng)Data控件的EOFAction屬性設(shè)置為2時(shí), 若移動(dòng)數(shù)據(jù)超過最后的記錄時(shí),Data控件將自動(dòng)創(chuàng)建新記錄 Data
10、1.Recordset.AddNew Edit方法:編輯修改一條已經(jīng)存在的字段 Data1.Recordset.Edit ! ChineseName = “李明” !用于引導(dǎo)緩沖區(qū)記錄的字段名 ! OfficePhone = “ 80798461” Data1.RecordSet.Update Update方法:更新記錄集,若修改顯示在綁定控件內(nèi)的某條記錄的數(shù)據(jù)后,使用data控件向前向后移動(dòng),這是系統(tǒng)自動(dòng)調(diào)用Update方法處理已修改的記錄,8.3 數(shù)據(jù)控件Data和Adodc,Delete方法:刪除當(dāng)前記錄 Data1.Recordset.Delete MoveFirst, MoveLas
11、t, MoveNext, MovePrivous 方法:移動(dòng)當(dāng)前記錄 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方法:用于記錄集刷新,當(dāng)記錄集為查詢的結(jié)果集時(shí),如果結(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移動(dòng)到指定的記錄位置 記錄集的Bookmark屬性主要保存當(dāng)前記錄指針 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可訪問本地?cái)?shù)據(jù)庫,也可訪問遠(yuǎn)程數(shù)據(jù)庫。ADO是以后發(fā)展的趨勢,將替代DA
14、O和RDO。 ADO(Active Data Objects):ADO 實(shí) 際 是 一 種 提 供 訪 問 各 種 數(shù) 據(jù) 類 型 的 連 接 機(jī) 制。 ADO 是 基 于OLE-DB 之 上 的 技 術(shù), 它 通 過 其 內(nèi) 部 的 屬 性 和 方 法 提 供 統(tǒng) 一 的 數(shù) 據(jù) 訪 問 接 口 方 法。不 止 適 合 于SQL Server、Oracle、Access 等 數(shù) 據(jù) 庫 應(yīng) 用 程 序, 也 適 合 于Excel 表 格、 文 本 文 件、 圖 形 文 件 和 無 格 式 的 數(shù) 據(jù) 文 件。 DAO(Data Access Objects): 是 一 種 面 向 對 象 的
15、 界 面 接 口。 通 過Jet 功 能 可 以 訪 問ISAM 數(shù) 據(jù) 庫, 使 用DAO/ ODBC Direct 功 能 可 以 實(shí) 現(xiàn) 遠(yuǎn) 程RDO 功 能。,8.3 數(shù)據(jù)控件Data和Adodc,1. Adodc控件的主要屬性 ConnectionString:設(shè)定與數(shù)據(jù)源連接的字符串。 ConnectionTimeout:等待連接成功的時(shí)間(秒)。超時(shí)將出錯(cuò)。 RecordSource:記錄集的數(shù)據(jù)源,指定要訪問的記錄集數(shù)據(jù)內(nèi)容。 CommandType:指明形成記錄集的命令的類型,1-adCmdText表示形成記錄集的是SQL命令,2-adCmdTable表示記錄集由表構(gòu)成,4-
16、adCmdStoredProc由存儲(chǔ)過程生成記錄集,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屬性的設(shè)置-1:,8.3 數(shù)據(jù)控件Data和Adodc,ConnectionString 屬性的設(shè)置-2:,8.3 數(shù)據(jù)控件Data和Adodc,ConnectionString 屬性的設(shè)置-3:,8.3 數(shù)據(jù)控件Data
17、和Adodc,RecordSource屬性的設(shè)置,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方法來添加列表項(xiàng),而數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件可以通過被綁定的數(shù)據(jù)控件的記錄集自動(dòng)填充列表項(xiàng)目 (見例8-6),8.4數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件,一、數(shù)據(jù)列表框控件和數(shù)據(jù)組合框控件的主要屬性 Datasource:指定被綁定的數(shù)據(jù)控件的名稱
19、DataField:指定與Datasource對應(yīng)的記錄集中的字段 RowSource:指定列表項(xiàng)中數(shù)據(jù)的來源,它可與相應(yīng)的數(shù)據(jù)控件綁定 ListField:指定列表框中數(shù)據(jù)項(xiàng)的顯示內(nèi)容,它為RowSource對應(yīng)記錄集的某一個(gè)字段 BoundColumn: RowSource對應(yīng)的記錄集的某一個(gè)字段,該字段必須與DataField指定的字段類型相同,以便根據(jù)列表項(xiàng)的選擇更新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ù)控件中所對應(yīng)的記錄集內(nèi)容,且每個(gè)單元格都可編輯修改 二、數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid的的主要差別 DataGrid只能與Adodc控件綁定 DBGrid只能和Data控件綁定,8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,三、DataGrid和DBGrid的主要屬性 Datasource:指定被綁定的數(shù)據(jù)控件的名稱 Column對象屬性:設(shè)置網(wǎng)格控件各列的屬性,在窗體上選中數(shù)據(jù)網(wǎng)格控件,點(diǎn)擊鼠標(biāo)右鍵,在快捷菜單中di點(diǎn)擊Edit菜單,使網(wǎng)格空間處于活動(dòng)狀態(tài)(可編輯狀態(tài)),然后在選中properties菜單項(xiàng), 即可打開屬
22、性頁,8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,四、DataGrid和DBGrid的其他屬性 AllowAddNew:是否允許向數(shù)據(jù)源中添加行 AllowDelete:是否允許對數(shù)據(jù)源刪除行 AllowUpdate:是否允許用戶修改單元格的值 Columns:返回一個(gè) Column 對象的集合,某個(gè)特定的Column 對象可由屬性Col確定, 或由Column(index)確定。(例8-8) Splits:包含所有存儲(chǔ)在 DataGrid 控件中的 Split 對象 SelStartCol, SelEndCol ,SelStartRow, SelEndRow :用來設(shè)置第一或最后被選
23、中的列或行, SelStartCol, SelStartRow一起使用可設(shè)定選中范圍的左上角, SelEndCol , SelEndRow一起使用可設(shè)定選中范圍的右下角 SelbookMarks屬性:返回?cái)?shù)據(jù)網(wǎng)格控件上被選中的記錄的書簽集合(例8-7),8.5數(shù)據(jù)網(wǎng)格控件DataGrid和 DBGrid,五、DataGrid和DBGrid的常用方法 ClearFields方法:清除當(dāng)前網(wǎng)格設(shè)置,恢復(fù)默認(rèn)布局(具有兩空白列),與后面的rebind方法配合 Rebind方法:自動(dòng)根據(jù)數(shù)據(jù)源進(jìn)行新列的綁定 HoldFields方法:強(qiáng)制網(wǎng)格使用當(dāng)前的列/字段布局 ClearSelCols方法:撤銷對拆分中所有列的選擇,如沒有選擇列,不做任何事情 Scroll方法:水平或垂直滾動(dòng)網(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北中醫(yī)藥大學(xué)《預(yù)防醫(yī)學(xué)綜合設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年重慶市安全員《A證》考試題庫
- 成都工業(yè)學(xué)院《數(shù)字電視節(jié)目編導(dǎo)與制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 西寧城市職業(yè)技術(shù)學(xué)院《城市傳播》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海交通大學(xué)《單片機(jī)原理及其應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古大學(xué)《材料化學(xué)與物理》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安海棠職業(yè)學(xué)院《風(fēng)景園林制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 襄陽職業(yè)技術(shù)學(xué)院《設(shè)計(jì)基礎(chǔ)(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南藝術(shù)職業(yè)學(xué)院《形體基訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 隴南師范高等??茖W(xué)校《生物安全與實(shí)驗(yàn)室安全》2023-2024學(xué)年第二學(xué)期期末試卷
- HG∕T 3792-2014 交聯(lián)型氟樹脂涂料
- 中國大豆加工發(fā)展現(xiàn)狀簡析
- 2024年海南省高考物理試卷(含答案)
- GJB5765-2006 軍用機(jī)場場道工程質(zhì)量評定標(biāo)準(zhǔn)
- JJG 705-2014液相色譜儀行業(yè)標(biāo)準(zhǔn)
- 公司合作計(jì)劃書
- 2016-2023年南京信息職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 跨領(lǐng)域聯(lián)合診療(MDT)管理法規(guī)
- 光伏電站運(yùn)維安全風(fēng)險(xiǎn)管控清單
- 保安員考核評分標(biāo)準(zhǔn)與細(xì)則
- 四年級豎式計(jì)算大全100道
評論
0/150
提交評論