![Visual Basic 程序設(shè)計(jì)教程第八章_第1頁(yè)](http://file4.renrendoc.com/view/d094f79dc578b89d242517edd61f6492/d094f79dc578b89d242517edd61f64921.gif)
![Visual Basic 程序設(shè)計(jì)教程第八章_第2頁(yè)](http://file4.renrendoc.com/view/d094f79dc578b89d242517edd61f6492/d094f79dc578b89d242517edd61f64922.gif)
![Visual Basic 程序設(shè)計(jì)教程第八章_第3頁(yè)](http://file4.renrendoc.com/view/d094f79dc578b89d242517edd61f6492/d094f79dc578b89d242517edd61f64923.gif)
![Visual Basic 程序設(shè)計(jì)教程第八章_第4頁(yè)](http://file4.renrendoc.com/view/d094f79dc578b89d242517edd61f6492/d094f79dc578b89d242517edd61f64924.gif)
![Visual Basic 程序設(shè)計(jì)教程第八章_第5頁(yè)](http://file4.renrendoc.com/view/d094f79dc578b89d242517edd61f6492/d094f79dc578b89d242517edd61f64925.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第八章數(shù)據(jù)庫(kù)編程
一、數(shù)據(jù)庫(kù)基本知識(shí)二、用VB操作Access數(shù)據(jù)庫(kù)表三、數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)VB程序設(shè)計(jì)教程1陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)一、幾個(gè)術(shù)語(yǔ)(1)數(shù)據(jù)數(shù)據(jù)是由一系列物理序號(hào)組成的,例如,1258、abcd、工人、農(nóng)民、學(xué)生等都屬于數(shù)據(jù),數(shù)據(jù)本身毫無(wú)意義,例如,1258和工人沒(méi)有什么關(guān)系,也無(wú)意義。但數(shù)據(jù)經(jīng)過(guò)加工處理后就不一樣了,例如,工人的月工資是1258元,那么這里的1258和工人兩個(gè)數(shù)據(jù)就有意義了。(2)數(shù)據(jù)處理數(shù)據(jù)處理是指,對(duì)各種形式的數(shù)據(jù)進(jìn)行匯集、傳輸、分組、排序、存儲(chǔ)、檢索、計(jì)算等一系列操作稱為數(shù)據(jù)處理。(3)數(shù)據(jù)庫(kù)所謂數(shù)據(jù)庫(kù),顧名思義就是“數(shù)據(jù)的倉(cāng)庫(kù)”。一般來(lái)說(shuō),數(shù)據(jù)庫(kù)是存儲(chǔ)在計(jì)算機(jī)系統(tǒng)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)的集合,這些數(shù)據(jù)是按一定的組織形式存放在各個(gè)數(shù)據(jù)庫(kù)的文件之中的,它為一個(gè)或多個(gè)用戶服務(wù),數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用它的應(yīng)用程序,對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的增減、修改、查詢、輸出等操作都按一種公用的、有控制的方法來(lái)進(jìn)行。VB程序設(shè)計(jì)教程2陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)(4)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)是指,利用計(jì)算機(jī)的特點(diǎn)對(duì)數(shù)據(jù)進(jìn)行記錄、整理、歸類和轉(zhuǎn)換等綜合管理的軟件,例如,Oracle、SQLServer、Access、FoxPro等軟件。它由三部分組成:①數(shù)據(jù)定義語(yǔ)言,用來(lái)描述和定義數(shù)據(jù)庫(kù)中的各種數(shù)據(jù)的特征;②數(shù)據(jù)操作語(yǔ)言,用來(lái)對(duì)數(shù)據(jù)的各種操作的各項(xiàng)規(guī)定;③數(shù)據(jù)管理的程序等。總之,數(shù)據(jù)的一切操作都是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行的。主要功能是,數(shù)據(jù)庫(kù)定義、數(shù)據(jù)庫(kù)操作、數(shù)據(jù)運(yùn)行管理、數(shù)據(jù)庫(kù)維護(hù)、通信管理等。(5)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)是指,進(jìn)行數(shù)據(jù)庫(kù)管理的完整計(jì)算機(jī)系統(tǒng):硬件系統(tǒng)、軟件系統(tǒng)(操作系統(tǒng)和DBMS)、數(shù)據(jù)庫(kù)、應(yīng)用程序、相關(guān)人員。
VB程序設(shè)計(jì)教程3陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)二、數(shù)據(jù)庫(kù)的數(shù)據(jù)模型由于數(shù)據(jù)庫(kù)的數(shù)據(jù)是按一定的邏輯結(jié)構(gòu)組織起來(lái)的數(shù)據(jù)的集合,所以存放在數(shù)據(jù)庫(kù)中數(shù)據(jù)的邏輯結(jié)構(gòu)的數(shù)據(jù)模型對(duì)數(shù)據(jù)庫(kù)有很大的影響。目前基本的數(shù)據(jù)庫(kù)模型有三種類型,即網(wǎng)狀模型、層次模型和關(guān)系模型。1.層次模型層次模型指的是,用樹(shù)型結(jié)構(gòu)來(lái)表示數(shù)據(jù)間聯(lián)系的模型稱為層次模型。樹(shù)的結(jié)點(diǎn)表示各個(gè)數(shù)據(jù),連線表示數(shù)據(jù)之間的關(guān)系,這種聯(lián)系只能是一對(duì)多的聯(lián)系,因而層次模型中有且僅有一個(gè)最高層的結(jié)點(diǎn),稱為根結(jié)點(diǎn),其它的結(jié)點(diǎn)有且僅有一個(gè)直接的上層結(jié)點(diǎn),稱為父結(jié)點(diǎn),上層結(jié)點(diǎn)和下層結(jié)點(diǎn)的聯(lián)系是1:N的聯(lián)系。層次模型結(jié)構(gòu)的特點(diǎn)是簡(jiǎn)單清晰,一目了然,
但有一定的局限性。如下圖所示。
VB程序設(shè)計(jì)教程4陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)VB程序設(shè)計(jì)教程5陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)2.網(wǎng)狀模型網(wǎng)狀模型指的是,用網(wǎng)絡(luò)結(jié)構(gòu)來(lái)表示數(shù)據(jù)間聯(lián)系的模型稱為網(wǎng)狀模型。一般網(wǎng)狀模型可以反映多對(duì)多的關(guān)系,如下圖所示。
VB程序設(shè)計(jì)教程6陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)這種模型的特點(diǎn)是:
①可以有一個(gè)或一個(gè)以上的根結(jié)點(diǎn)。
②同時(shí)可以有一個(gè)或一個(gè)以上的父結(jié)點(diǎn)。
③兩個(gè)結(jié)點(diǎn)之間可以有多種聯(lián)系。
3.關(guān)系模型關(guān)系模型指的是,用表格來(lái)表示數(shù)據(jù)間聯(lián)系的模型稱為關(guān)系模型,關(guān)系模型實(shí)際上就是用一張二維表格來(lái)描述的。目前在微機(jī)上的數(shù)據(jù)庫(kù)管理系統(tǒng)均為關(guān)系統(tǒng)型的,如DBASE、FoxBASE、FoxPro、CLIPER、ORACLE、UNIFY、INFORMIX、INGRES等。其特點(diǎn)是:(1)用二維表格形式來(lái)表示事物及其之間的關(guān)系。(2)每個(gè)二維表格稱為一個(gè)“關(guān)系”(對(duì)應(yīng)一個(gè)實(shí)體型或事物類)。(3)表格的每一行稱為一條記錄(對(duì)應(yīng)一個(gè)實(shí)體或事物)。(4)表格的每一列稱為一個(gè)字段(或數(shù)據(jù)項(xiàng),對(duì)應(yīng)一個(gè)屬性或特征),每個(gè)字段有一個(gè)字段名。VB程序設(shè)計(jì)教程7陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)(5)一條記錄在某個(gè)字段的內(nèi)容稱為字段的值。(6)不同的字段允許有不同的數(shù)據(jù)類型與取值范圍,但同一字段不同記錄的值的類型與取值范圍相同。(7)字段名、字段的數(shù)據(jù)類型合起來(lái)稱為字段的型。下圖所示的就是一張二維數(shù)表,每個(gè)學(xué)生的所有信息包括:學(xué)號(hào)、姓名、性別、出生年月等字段,這些字段的總和稱為記錄。
VB程序設(shè)計(jì)教程8陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)VB程序設(shè)計(jì)教程9陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)三、使用Access創(chuàng)建數(shù)據(jù)庫(kù)表我們還是用第七章的例題7.12這個(gè)例子,為了更能說(shuō)明問(wèn)題起見(jiàn),我們?cè)鎏砹艘粋€(gè)出生年月字段項(xiàng),如下表所示。
VB程序設(shè)計(jì)教程10陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)下面我們介紹使用Access創(chuàng)建數(shù)據(jù)庫(kù)表的操作步驟:(1)在Windows系統(tǒng)下單擊“開(kāi)始”菜單按鈕,在上彈的菜單項(xiàng)中選擇“程序”項(xiàng),再選擇MicrosoftAccess功能后即可進(jìn)入Access主窗口。(2)單擊“文件”模塊下的“新建”選項(xiàng)功能,在右窗口上出現(xiàn)文件類型及形式,選擇“空數(shù)據(jù)庫(kù)”項(xiàng)后,彈出一個(gè)對(duì)話框,用戶可以將所需創(chuàng)建的文件名和路徑通過(guò)該對(duì)話框設(shè)定,該文件的擴(kuò)展名為.mdb。本例假設(shè)使用的文件名為:職工人事檔案。(3)單擊“創(chuàng)建”按鈕后,出現(xiàn)如下圖所示的對(duì)話框。
VB程序設(shè)計(jì)教程11陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)VB程序設(shè)計(jì)教程12陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)(4)雙擊該選項(xiàng)后,出現(xiàn)一個(gè)對(duì)話框窗口,用戶可以根據(jù)需要輸入數(shù)據(jù)庫(kù)表的結(jié)構(gòu),即字段名稱、數(shù)據(jù)類型、說(shuō)明等內(nèi)容。本例中輸入的字段名稱和數(shù)據(jù)類型如下圖所示。
VB程序設(shè)計(jì)教程13陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)(5)輸入完數(shù)據(jù)庫(kù)表結(jié)構(gòu)的內(nèi)容后,系統(tǒng)將又彈出一個(gè)窗口,要求用戶輸入數(shù)據(jù)庫(kù)表記錄,本例要求輸入10條記錄,如下圖所示。
VB程序設(shè)計(jì)教程14陳孟建沈美莉編著第一節(jié)數(shù)據(jù)庫(kù)基本知識(shí)(6)單擊“文件”模塊下的“另存為”功能,將此文件保存到用戶指定的位置處。通過(guò)以上的步驟,可以創(chuàng)建Access數(shù)據(jù)庫(kù)表文件。當(dāng)然,對(duì)該表文件的各種操作,例如,錄入、追加、查詢、輸出等,可以直接在Access軟件中進(jìn)行,也可以使用VisualBasic語(yǔ)言中語(yǔ)句對(duì)該數(shù)據(jù)庫(kù)表進(jìn)行各種各樣的操作。
返回本章首頁(yè)VB程序設(shè)計(jì)教程15陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表一、使用可視化數(shù)據(jù)管理器(1)在VisualBasic主窗口中,單擊“外接程序”模塊下的“可視化數(shù)據(jù)管理器”選項(xiàng)后,彈出VisData主窗口。(2)在VisData主窗口中,單擊“文件”模塊下的“新建”選項(xiàng),再選擇“MicrosoftAccess”子選項(xiàng),再選擇“Version7.0MDB”功能如下圖所示。
VB程序設(shè)計(jì)教程16陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(3)系統(tǒng)彈出“選擇要?jiǎng)?chuàng)建的Access數(shù)據(jù)庫(kù)”對(duì)話框,如下圖所示,在該對(duì)話框中輸入數(shù)據(jù)庫(kù)表文件名,輸入“職工人事檔案表”。
VB程序設(shè)計(jì)教程17陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(4)單擊“保存”按鈕后,出現(xiàn)如下圖所示的對(duì)話框。在該對(duì)話框中,單擊鼠標(biāo)器的右按鍵后,彈出一個(gè)動(dòng)態(tài)菜單,選擇“新建表”選項(xiàng)。
VB程序設(shè)計(jì)教程18陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(5)在彈出的表結(jié)構(gòu)對(duì)話框中,輸入表名稱為:職工人事檔案,如下圖所示。
VB程序設(shè)計(jì)教程19陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(6)在表結(jié)構(gòu)對(duì)話框中,有添加字段按鈕、刪除字段按鈕、添加索引按鈕、刪除索引按鈕,用戶可根據(jù)需要選擇其中的某個(gè)命令按鈕,本例是單擊“添加字段”按鈕。(7)單擊“添加字段”按鈕后,彈出如下圖所示的“添加字段”對(duì)話框,在該對(duì)話框中用戶可以根據(jù)需要添加字段。
VB程序設(shè)計(jì)教程20陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(8)本例要添加的字段是:姓名,字符型,8個(gè)字節(jié)、出生年月,日期型,8個(gè)字節(jié)、職稱,字符型,6個(gè)字節(jié)、基本工資,單精度型、部門,字符型,4個(gè)字節(jié)、政治面貌,字符型,4個(gè)字節(jié)、獎(jiǎng)金,單精度型、工齡,整數(shù)型等。當(dāng)全部都輸入完畢后,單擊“生成表”按鈕,即可生成職工人事檔案表的結(jié)構(gòu)了,在數(shù)據(jù)庫(kù)窗口中看到的是表結(jié)構(gòu)的內(nèi)容,如下圖所示。
VB程序設(shè)計(jì)教程21陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表二、數(shù)據(jù)庫(kù)表的一般操作1.數(shù)據(jù)庫(kù)表記錄的添加在數(shù)據(jù)庫(kù)窗口中,用鼠標(biāo)器右鍵單擊“職工人事檔案表”后,彈出一個(gè)動(dòng)態(tài)的菜單,選擇“打開(kāi)”選項(xiàng)后,系統(tǒng)將彈出“職工人事檔案表”窗口,單擊“添加”按鈕,即可添加新的記錄,輸入有關(guān)的數(shù)據(jù)如下圖所示。
VB程序設(shè)計(jì)教程22陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表2.數(shù)據(jù)庫(kù)表記錄的刪除當(dāng)不需要某條記錄時(shí),用戶可以用刪除功能來(lái)刪除當(dāng)前的記錄,其操作如下:(1)打開(kāi)數(shù)據(jù)庫(kù)表文件:在數(shù)據(jù)庫(kù)窗口中單擊右按鍵,在彈出的動(dòng)態(tài)菜單項(xiàng)下選擇“打開(kāi)”功能即可打開(kāi)數(shù)據(jù)庫(kù)表文件,其窗口與前相同。(2)選擇某個(gè)需要?jiǎng)h除的記錄:?jiǎn)螕簟啊卑粹o,找到所需要?jiǎng)h除的記錄后,單擊“刪除”按鈕后,系統(tǒng)將彈出一個(gè)“VisData”對(duì)話框,詢問(wèn)是否要?jiǎng)h除當(dāng)前的記錄,當(dāng)回答“Y”后,立即刪除,否則,當(dāng)回答“N”則不刪除。
VB程序設(shè)計(jì)教程23陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表3.數(shù)據(jù)庫(kù)表結(jié)構(gòu)的修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)修改的操作如下:(1)打開(kāi)數(shù)據(jù)庫(kù)表文件:在數(shù)據(jù)庫(kù)窗口中單擊右按鍵,在彈出的動(dòng)態(tài)菜單項(xiàng)下選擇“設(shè)計(jì)”功能即可打開(kāi)數(shù)據(jù)庫(kù)表結(jié)構(gòu),其窗口如下圖所示。(2)選擇某個(gè)需要修改的字段后,再?gòu)拿Q文本框中修改,修改后單擊“關(guān)閉”按鈕即可。
VB程序設(shè)計(jì)教程24陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表三、數(shù)據(jù)的查詢數(shù)據(jù)庫(kù)表創(chuàng)建后最主要的目的是提供數(shù)據(jù)查詢的功能,在VisData窗口對(duì)數(shù)據(jù)庫(kù)表中數(shù)據(jù)的查詢有兩種方法,即使用查詢生成器和使用SQL語(yǔ)句。下面我們介紹的是使用查詢生成器來(lái)完成查詢數(shù)據(jù)的操作步驟。(1)在VisData窗口,單擊“實(shí)用程序”模塊下的“查詢生成器”選項(xiàng)后,系統(tǒng)彈出“查詢生成器”窗口。(2)在該對(duì)話框窗口中單擊“職工人事檔案表”后,該表中的所有字段都顯示在“要顯示的字段”列表中,從列表中單擊要查詢結(jié)果中顯示的字段,可選擇多個(gè)字段,如下圖所示。VB程序設(shè)計(jì)教程25陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表VB程序設(shè)計(jì)教程26陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(3)設(shè)置查詢條件,通過(guò)選擇“字段名稱”、“運(yùn)算符”和“值”三項(xiàng)的內(nèi)容,構(gòu)成所需要的查詢條件。所有三項(xiàng)內(nèi)容中都可以通過(guò)單擊“”按鈕在列表框中選擇其中的內(nèi)容。(4)單擊“將And加入條件”或“將or加入條件”按鈕,將當(dāng)前條件添加到下面的“條件”列表中。對(duì)于需要多個(gè)條件的查詢,選擇“將And加入條件”表示條件之間是“與”的關(guān)系,選擇“將or加入條件”表示條件之間是“或”的關(guān)系。(5)查詢生成器底下的六個(gè)按鈕的功能如下:
①“運(yùn)行”按鈕的功能是,查看查詢結(jié)果。單擊該按鈕后會(huì)打開(kāi)如下圖(a)所示的對(duì)話框,詢問(wèn)“這是SQL傳遞查詢嗎?”,回答“否”則顯示查詢的結(jié)果。假設(shè),我們選擇要顯示的字段是:姓名、基本工資、獎(jiǎng)金等三個(gè)字段,則經(jīng)過(guò)條件查詢后的結(jié)果有5條記錄,其顯示格式如下圖(b)所示。
VB程序設(shè)計(jì)教程27陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表
②
“顯示”按鈕的功能是,顯示所生成的SQL查詢語(yǔ)句,如下圖所示。
VB程序設(shè)計(jì)教程28陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表
③“復(fù)制”按鈕的功能是,將當(dāng)前建立的查詢復(fù)制到SQL窗口中去。
④“保存”按鈕的功能是,把生成的SQL查詢語(yǔ)句按指定的名稱保存。
⑤“清除”按鈕的功能是,清除所有設(shè)置,回到初始狀態(tài)。
⑥
“關(guān)閉”按鈕的功能是,關(guān)閉“查詢生成器”窗口。
VB程序設(shè)計(jì)教程29陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表四、SQL語(yǔ)句簡(jiǎn)介SQL是英文StructuredQueryLanguage的縮寫(xiě),是結(jié)構(gòu)化查詢語(yǔ)句的意思。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如,更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。1.Select語(yǔ)句格式:Select[Predicate<字段名列表/*>]From[<表名列表>][Where<查詢條件>][Groupby<分組條件>][Having<分組搜索條件>][Orderby<排序條件>]功能:查詢指定的數(shù)據(jù)庫(kù)表中數(shù)據(jù)。VB程序設(shè)計(jì)教程30陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表注意:(1)Predicate子句包括All、Distinct、Distinctrow、Top等參數(shù),表示返回?cái)?shù)據(jù)中被選擇字段是否允許有重復(fù)值出現(xiàn),All表示允許,Distinct表示不允許,Distinctrow表示將重復(fù)值濾掉,Top表示將從第一條記錄開(kāi)始。(2)From子句用于指定要查詢的表。(3)Where子句用于指定查詢的條件。(4)Groupby子句用于指定將數(shù)據(jù)記錄分組的條件。(5)Having子句一般與Groupby聯(lián)合使用,用于指定分組查詢條件。(6)Orderby子句用于指定將返回?cái)?shù)據(jù)排序條件。
VB程序設(shè)計(jì)教程31陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表【例題8.1】利用Select語(yǔ)句查詢“職工人事檔案”表中的數(shù)據(jù)。假設(shè)該數(shù)據(jù)庫(kù)表中有:姓名、出生年月、職稱、基本工資、部門、政治面貌、獎(jiǎng)金、工齡。在SQL語(yǔ)句窗口下鍵入SQL語(yǔ)句,并按“執(zhí)行”按鈕后即可顯示其結(jié)果,下圖所示的是SQL窗口。
VB程序設(shè)計(jì)教程32陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表下面利用select語(yǔ)句查詢職工人事檔案表中的數(shù)據(jù)。(1)select姓名,職稱,基本工資,獎(jiǎng)金from職工人事檔案以上命令的功能是,查詢“職工人事檔案”數(shù)據(jù)庫(kù)表中的字段名為姓名、職稱、基本工資、獎(jiǎng)金等字段的數(shù)據(jù)。單擊“執(zhí)行”按鈕數(shù)據(jù)后的顯示結(jié)果如下圖所示,共有10條記錄。
VB程序設(shè)計(jì)教程33陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(2)select姓名,職稱,基本工資,獎(jiǎng)金from職工人事檔案where基本工資>900以上命令的功能是,查詢“職工人事檔案”數(shù)據(jù)庫(kù)表中滿足“基本工資”>900元的字段名為姓名、職稱、基本工資、獎(jiǎng)金等字段的數(shù)據(jù)。單擊“執(zhí)行”按鈕數(shù)據(jù)后的顯示結(jié)果共有5條記錄。(3)selectdistinct姓名,職稱,基本工資,獎(jiǎng)金from職工人事檔案以上命令的功能是,查詢“職工人事檔案”數(shù)據(jù)庫(kù)表中的字段名為姓名、職稱、基本工資、獎(jiǎng)金等字段的數(shù)據(jù),所查詢出來(lái)的記錄是唯一的。
VB程序設(shè)計(jì)教程34陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表2.InsertInto語(yǔ)句格式:InsertInto<表名>(字段名列表)<Values(字段值列表)/Select語(yǔ)句>功能:向指定的數(shù)據(jù)庫(kù)表中添加一條或多條記錄的數(shù)據(jù)。注意:(1)表名指的是,需要插入記錄數(shù)據(jù)的數(shù)據(jù)庫(kù)表名稱。(2)字段名列表指的是,需要插入記錄數(shù)據(jù)的字段名稱。(3)當(dāng)選擇了Values參數(shù)時(shí),表示添加一條記錄的新數(shù)據(jù),此時(shí)(字段值列表)中的個(gè)數(shù)、類型均需與(字段名列表)完全匹配。(4)當(dāng)選擇了Select選項(xiàng)時(shí),則表示將查詢結(jié)果添加到數(shù)據(jù)庫(kù)表中。
VB程序設(shè)計(jì)教程35陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表【例題8.2】利用InsertInto語(yǔ)句,插入一條或多條記錄的數(shù)據(jù)。(1)insertinto職工人事檔案(姓名,基本工資,獎(jiǎng)金)values(“陳小平”,2567.89,2390)以上命令的功能是,在“職工人事檔案”表中的末尾插入一條新的記錄數(shù)據(jù),其字段名是:姓名,基本工資,獎(jiǎng)金。(2)insertinto職工人事檔案Select*from職工檔案2以上命令的功能是,將數(shù)據(jù)庫(kù)表“職工檔案2”中的記錄全部復(fù)制到“職工人事檔案”中去(“職工檔案2”與“職工人事檔案”結(jié)構(gòu)相同)。
VB程序設(shè)計(jì)教程36陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表3.Update語(yǔ)句格式:Update<表名>set字段名=表達(dá)式,……,字段名=表達(dá)式[Where<條件>]功能:修改用戶指定<表名>的表中選定行的一列或若干列的值。
【例題8.3】將姓名為“沈書(shū)毅”的職工的獎(jiǎng)金賦初值為0。Update職工人事檔案
set獎(jiǎng)金=0
Where姓名=“沈書(shū)毅”
VB程序設(shè)計(jì)教程37陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表4.Delete語(yǔ)句格式:Deletefrom<表名>[Where<條件>]功能:刪除用戶指定<表名>的表中選定的行或全部。【例題8.4】將“基本工資”小于1000元的記錄全部刪除。Deletefrom職工人事檔案Where基本工資<10005.Create語(yǔ)句Create語(yǔ)句可以用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)、表、視圖、索引等。(1)創(chuàng)建數(shù)據(jù)庫(kù)的格式CreateDataBase<數(shù)據(jù)庫(kù)名>VB程序設(shè)計(jì)教程38陳孟建沈美莉編著第二節(jié)用VB操作Access數(shù)據(jù)庫(kù)表(2)創(chuàng)建數(shù)據(jù)庫(kù)表的格式CreateTable<表名>
(字段名1類型[NotNull]
字段名2類型[NotNull]………………)(3)創(chuàng)建視圖的格式CreateView<視圖名>[(視圖字段名表)](4)創(chuàng)建索引的格式Create[Unique]Index索引名On表名(列名[ASC/Desc])……返回本章首頁(yè)VB程序設(shè)計(jì)教程39陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)一、數(shù)據(jù)控件數(shù)據(jù)控件(Data控件)是VisualBasic的內(nèi)部控件,它可以訪問(wèn)多種標(biāo)準(zhǔn)格式的數(shù)據(jù)庫(kù),例如,Access、FoxPro等,它還可通過(guò)開(kāi)放式數(shù)據(jù)庫(kù)連接(ODBC),訪問(wèn)和操作多種服務(wù)數(shù)據(jù)庫(kù),例如,SQLServer、Oracle等。1.Data控件作用Data控件主要具有以下幾個(gè)作用:(1)可以對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的進(jìn)行訪問(wèn);(2)可以從一條記錄移到另一條記錄,并顯示和操縱來(lái)自被連接控件的記錄的數(shù)據(jù);(3)可以執(zhí)行大部分?jǐn)?shù)據(jù)訪問(wèn)操作,而不需要編寫(xiě)代碼;(4)可以通過(guò)數(shù)據(jù)綁定控件自動(dòng)顯示來(lái)自當(dāng)前記錄的一個(gè)或多個(gè)字段的數(shù)據(jù)。VB程序設(shè)計(jì)教程40陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)2.Data控件屬性Data控件主要具有以下幾個(gè)屬性:(1)Connect屬性該屬性的主要功能是返回或設(shè)置連接數(shù)據(jù)庫(kù)數(shù)據(jù)的來(lái)源,例如,MicrosoftAccess、FoxPro、Excel8.0等。(2)DataBaseName屬性該屬性的主要功能是返回或設(shè)置Data控件的數(shù)據(jù)源的名稱及位置。(3)RecordSource屬性該屬性的主要功能是返回或設(shè)置Data控件的記錄的來(lái)源,可以是表名稱、SQL查詢語(yǔ)句、也可以是一個(gè)查詢名。(4)BOFAction屬性該屬性的主要功能是返回或設(shè)置一個(gè)值,用來(lái)指示當(dāng)BOF屬性為True時(shí)Data控件的行為。該值有以下兩種:
①0—MoveFirst:表示將第一條記錄為當(dāng)前記錄;
②1—BOF:表示將當(dāng)前記錄位置定位在第一條記錄之前。VB程序設(shè)計(jì)教程41陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(5)EOFAction屬性該屬性的主要功能是返回或設(shè)置一個(gè)值,用來(lái)指示當(dāng)BOF屬性為True時(shí)Data控件的行為。該值有以下三種:
①0—MoveLase:表示將最后一條記錄為當(dāng)前記錄;
②1—EOF:表示將當(dāng)前記錄位置定位在第一條記錄之后。
③2—AddNew:表示如果當(dāng)前記錄指針移過(guò)最后一條記錄,則自動(dòng)添加一條新記錄。VB程序設(shè)計(jì)教程42陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(6)ReadOnly屬性該屬性的主要功能是返回或設(shè)置一個(gè)值,用來(lái)確定數(shù)據(jù)庫(kù)數(shù)據(jù)是否為只讀。如果設(shè)置為True,則不允許對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行修改;如果設(shè)置為False,則允許對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行修改。(7)RecordsetType屬性該屬性的主要功能是返回或設(shè)置一個(gè)值,用來(lái)指出由Data控件所創(chuàng)建的Recordset對(duì)象的類型,該類型共有以下三種設(shè)置:
①0—Table:表示一個(gè)表類型記錄集,該類型是一個(gè)記錄集合,代表能用來(lái)添加、更新或刪除記錄的單個(gè)數(shù)據(jù)庫(kù)表。
②1—Dynaset:表示一個(gè)動(dòng)態(tài)類型記錄集,該類型是一個(gè)記錄的動(dòng)態(tài)集合,它可以是一個(gè)數(shù)據(jù)庫(kù)表,也可以是從一個(gè)或多個(gè)表中得到的查詢結(jié)果,可以在動(dòng)態(tài)集類型的Recordset對(duì)象里添加、更新或刪除記錄,并且任何改變都將會(huì)反映在基本表上。
③2—Snapshot:表示一個(gè)快照類型記錄集,該類型是一個(gè)記錄集合的靜態(tài)副本,可用于尋找數(shù)據(jù)或生成報(bào)表。一個(gè)快照類型的Recordset對(duì)象能包含從一個(gè)或多個(gè)在同一數(shù)據(jù)庫(kù)表里取出的字段,但字段不能更改。
VB程序設(shè)計(jì)教程43陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)3.Data控件方法Data控件主要具有以下幾種方法:(1)移動(dòng)記錄指針的方法
①M(fèi)oveFirst方法:將記錄指針移到第一條記錄;
②MoveLast方法:將記錄指針移到最后一條記錄;
③MoveNext方法:將記錄指針向后移動(dòng)一條記錄;
④MovePrevious方法:將記錄指針向前移動(dòng)一條記錄。(2)增加和刪除記錄的方法
①AddNew方法:增加一條新記錄,作為表文件的最后一條記錄。
②Delete方法:刪除當(dāng)前記錄。(3)訪問(wèn)數(shù)據(jù)的方法
①UpdateRecord方法:將連接到該Data控件的數(shù)據(jù)綁定控件中的內(nèi)容保存到數(shù)據(jù)庫(kù)。
②UpdateControls方法:將該Data控件RecordSet對(duì)象中的當(dāng)前記錄顯示在關(guān)聯(lián)的數(shù)據(jù)綁定控件中。VB程序設(shè)計(jì)教程44陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)
③Refresh方法:更改Data控件的數(shù)據(jù)源數(shù)據(jù)源屬性后,重新創(chuàng)建其RecordSet對(duì)象。4.Data控件事件Data控件主要具有以下幾個(gè)事件:(1)Error事件該事件的主要功能是,在運(yùn)行程序中發(fā)生錯(cuò)誤后觸發(fā)該事件,如果編寫(xiě)了出錯(cuò)事件的代碼時(shí),當(dāng)在程序中發(fā)生錯(cuò)誤后,VisualBasic將顯示與該錯(cuò)誤有關(guān)的信息。(2)RePosition事件該事件的主要功能是,當(dāng)一條記錄成為當(dāng)前記錄之后觸發(fā)該事件。Recordset對(duì)象中的第一條記錄成為當(dāng)前記錄,這時(shí)會(huì)觸發(fā)RePosition事件。(3)Validate事件該事件的主要功能是,當(dāng)一條記錄成為當(dāng)前記錄之前觸發(fā),使用Delete、Unload、Close操作之前會(huì)觸發(fā)該事件。
VB程序設(shè)計(jì)教程45陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)【例題8.5】利用Data數(shù)據(jù)控件訪問(wèn)“職工人事檔案”數(shù)據(jù)庫(kù)表中的數(shù)據(jù),并顯示職工的姓名、出生年月、部門、職稱、基本工資、獎(jiǎng)金等字段信息。(1)在窗體上的布局結(jié)構(gòu)如下圖所示。共有:7個(gè)標(biāo)簽控件、6個(gè)文本框控件、1個(gè)數(shù)據(jù)控件(Data控件)。(2)6個(gè)文本框中的屬性分別是:Text1.DataField=姓名、Text2.DataField=出生年月、Text3.DataField=部門、Text4.DataField=職稱、Text5.DataField=基本工資、Text6.DataField=獎(jiǎng)金、所有的文本框中的Text.DataSource數(shù)據(jù)來(lái)源于Data1。
VB程序設(shè)計(jì)教程46陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)VB程序設(shè)計(jì)教程47陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(3)數(shù)據(jù)控件中的屬性是:Data1.DataBaseName=E:\cbs\cbs13\vb\職工人事檔案.mdb,Data1.Caption=職工人事檔案表,Data1.RecordSource=職工人事檔案。(4)運(yùn)行以上設(shè)置的窗體后,出現(xiàn)如下圖所示的窗口,該窗口中數(shù)據(jù)的初始值是“職工人事檔案”表中的第一條記錄,以后單擊Data1數(shù)據(jù)控件中的按鈕后,即可在文本框中顯示不同記錄中的數(shù)據(jù)。
VB程序設(shè)計(jì)教程48陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(5)Data1控件中有4個(gè)按鈕,從左到右分別代表:
①移動(dòng)記錄指針到第一條記錄;
②移動(dòng)記錄指針到上一條記錄;
③移動(dòng)記錄指針到下一條記錄;
④
移動(dòng)記錄指針到最后一條記錄。
二、記錄集對(duì)象1.記錄集對(duì)象的屬性Recordset對(duì)象主要具有以下幾個(gè)屬性:(1)AbsolutePosition屬性該屬性的主要功能是,指定Recordset對(duì)象當(dāng)前記錄的序號(hào)位置,第一條記錄的AbsolutePosition的值為0。(2)Bookmark屬性該屬性的主要功能是,返回唯一標(biāo)識(shí)Recordset對(duì)象中當(dāng)前記錄的書(shū)簽,或者將Recordset對(duì)象的當(dāng)前記錄設(shè)置為由有效書(shū)簽所標(biāo)識(shí)的記錄。(3)RecordCount屬性該屬性的主要功能是,返回記錄集中的記錄總數(shù),該屬性是只讀屬性。為了獲得一個(gè)準(zhǔn)確的記錄總數(shù)值,一般在讀取RecordCount屬性值之前先執(zhí)行一次MoveLast方法,然后,再獲得記錄總數(shù)值。VB程序設(shè)計(jì)教程49陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(4)Nomatch屬性該屬性的主要功能是,返回?cái)?shù)據(jù)查詢結(jié)果,若成功返回時(shí),其值為False,否則返回的值為True。(5)BOF、EOF屬性該屬性的主要功能是,用來(lái)指示當(dāng)前記錄指針的位置,如果記錄指針指向記錄集的第一條記錄之前,則BOF屬性為True,否則為False。如果記錄指針指向記錄集的最后一條記錄之后,則EOF屬性為True,否則為False。如果當(dāng)前記錄集的EOF和BOF屬性值都為True,則說(shuō)明該記錄集中沒(méi)有記錄。(6)Fields屬性該屬性的主要功能是,用來(lái)對(duì)應(yīng)于Recordset中的一列。Recordset對(duì)象的Field屬性是一個(gè)集合,該集合包含Recordset對(duì)象的所有Field對(duì)象。使用Field對(duì)象的Value屬性可設(shè)置或返回當(dāng)前記錄的數(shù)據(jù)。VB程序設(shè)計(jì)教程50陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)2.記錄集對(duì)象的方法(1)Move方法該方法主要功能是,用于移動(dòng)記錄指針,它可以使不同的記錄成為當(dāng)前記錄,一般用于瀏覽數(shù)據(jù)的顯示。Move方法有以下4種形式:
①M(fèi)oveFirst方法:將記錄指針移到第一條記錄;
②MoveLast方法:將記錄指針移到最后一條記錄;
③MoveNext方法:將記錄指針向后移動(dòng)一條記錄;
④MovePrevious方法:將記錄指針向前移動(dòng)一條記錄。(2)Find方法該方法主要的功能是,用于在記錄集中查找符合條件的記錄,如果有符合條件的記錄,則將記錄指針定位在找到的記錄上,否則,將指針定位在記錄集的末尾。Find方法有以下4種形式:
①FindFirst方法:查找符合條件的第一條記錄;
②FindLast方法:查找符合條件的最后一條記錄;
③FindNext方法:查找符合條件的下一條記錄;
④FindPrevious方法:查找符合條件的上一條記錄。VB程序設(shè)計(jì)教程51陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(3)AddNew方法該方法主要的功能是,用于新增記錄,它將一條空記錄添加到記錄集的末尾,并將記錄指針定位到該記錄上。新記錄的值為指定的默認(rèn)值,如果沒(méi)有指定值,則置為空值。可以在數(shù)據(jù)綁定控件中輸入值。要注意的是,新記錄成為當(dāng)前記錄后,需通過(guò)Update方法可以將該記錄存儲(chǔ)到數(shù)據(jù)庫(kù)文件中。(4)Delete方法該方法主要的功能是,用于刪除當(dāng)前記錄。使用了Delete方法后,要移動(dòng)記錄指針來(lái)清除記錄的顯示,否則,被刪除的記錄仍顯示在綁定控件中。(5)Update方法該方法主要的功能是,用于提交數(shù)據(jù)以確認(rèn)修改,其格式為:Data1.Recordset.Update(6)Close方法該方法主要的功能是,用于關(guān)閉記錄集對(duì)象,其格式為:Data1.Recordset.Close。VB程序設(shè)計(jì)教程52陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(7)Seek方法該方法主要的功能是,用于在表類型的記錄集中查找滿足條件的記錄,使用Seek方法之前必須先打開(kāi)表的索引,要查找的內(nèi)容為索引字段的內(nèi)容。其格式為:Data1.Recordset.seek<比較字符>,其中<比較字符>為字符串類型,可以是:<、<=、=、>=、>之一,可以有多個(gè)關(guān)鍵字,分別對(duì)應(yīng)于當(dāng)前索引字段。
三、數(shù)據(jù)綁定控件1.數(shù)據(jù)綁定概念在VisualBasic中可以與數(shù)據(jù)綁定的控件有:文本框(TextBox)、標(biāo)簽框(Lebel)、圖片框(PictureBox)、圖像框(Image)、列表框(ListBox)、組合框(ComboBox)、復(fù)選框(CheckBox)、表(MSFlexCrid)、數(shù)據(jù)列表(DataList)、數(shù)據(jù)網(wǎng)絡(luò)(DataGrid)等。
VB程序設(shè)計(jì)教程53陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)2.數(shù)據(jù)綁定控件的屬性利用數(shù)據(jù)綁定控件顯示信息,必須對(duì)綁定控件設(shè)置適當(dāng)?shù)膶傩灾?,下面將要介紹的是綁定控件的幾個(gè)與數(shù)據(jù)庫(kù)訪問(wèn)有關(guān)的屬性。(1)DataChanged屬性該屬性主要功能是,用來(lái)指示綁定控件里的值是否被改變。如果被改變,則其值為True,否則,值為False。(2)DataSource屬性該屬性主要功能是,用來(lái)指定數(shù)據(jù)綁定所連接的數(shù)據(jù)控件的名稱。通過(guò)該數(shù)據(jù)源,數(shù)據(jù)綁定控件被綁定到一個(gè)數(shù)據(jù)庫(kù)。(3)DataField屬性該屬性主要功能是,用來(lái)指定一個(gè)要顯示的數(shù)據(jù)庫(kù)表中的字段名,該字段名的具體名稱是具體連接到某一個(gè)數(shù)據(jù)庫(kù)表中的字段名稱。
VB程序設(shè)計(jì)教程54陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)3.使用綁定控件的操作步驟要在應(yīng)用程序中使用數(shù)據(jù)綁定控件顯示數(shù)據(jù)的基本操作步驟如下:(1)添加Data控件及綁定控件到窗體中。(2)設(shè)置Data控件的DataBaseName屬性及RecordSource屬性,連接數(shù)據(jù)庫(kù)表。(3)設(shè)置綁定控件的DataSource屬性為Data控件的名字。(4)設(shè)置緒定控件的Datafield屬性為要顯示的字段名。以上是有關(guān)Data控件及數(shù)據(jù)綁定控件的屬性及方法,下面我們將要介紹一個(gè)數(shù)據(jù)綁定的具體實(shí)例。
VB程序設(shè)計(jì)教程55陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)四、ADO數(shù)據(jù)訪問(wèn)技術(shù)1.ADO對(duì)象模型ADO對(duì)象模型是Microsoft公司新一代的數(shù)據(jù)訪問(wèn)技術(shù),ADO對(duì)象模型規(guī)定了一組可編程的分層對(duì)象集合,在VisualBasic應(yīng)用程序中通過(guò)創(chuàng)建這組對(duì)象集合來(lái)連接數(shù)據(jù)庫(kù),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作。ADO對(duì)象模型主要由Connection(連接)、Command(命令)、Parameter(參數(shù))、Recordset(記錄集)、field(字段)、Property(屬性)、Error(錯(cuò)誤)等7個(gè)對(duì)象組成,另外還有4個(gè)集合對(duì)象,分別是Fields、Properties、Parameters和Errors集合。使用ADO對(duì)象進(jìn)行數(shù)據(jù)訪問(wèn)的基本方法是:(1)連接到數(shù)據(jù)源。同時(shí),可確定對(duì)數(shù)據(jù)源的所有更改是否已成功或沒(méi)有發(fā)生。(2)指定訪問(wèn)數(shù)據(jù)源的命令,同時(shí)可帶變量參數(shù),或優(yōu)化執(zhí)行。VB程序設(shè)計(jì)教程56陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(3)執(zhí)行命令。(4)如果這個(gè)命令使數(shù)據(jù)按表中的行的形式返回,則將這些行存儲(chǔ)在易于檢查、操作或更改的緩存中。(5)適當(dāng)情況下,可使用緩存行的更改內(nèi)容來(lái)更新數(shù)據(jù)源。(6)提供常規(guī)方法檢測(cè)錯(cuò)誤(通常由建立連接或執(zhí)行命令造成)。在典型情況下,需要在編程模型中采用所有這些步驟。但是,由于ADO有很強(qiáng)的靈活性,所以最后只需執(zhí)行部分模塊就能做一些有用的工作。例如:將數(shù)據(jù)從文件直接存儲(chǔ)到緩存行,然后僅用ADO資源對(duì)數(shù)據(jù)進(jìn)行檢查。
VB程序設(shè)計(jì)教程57陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)2.連接(Connection)對(duì)象通過(guò)“連接”可從應(yīng)用程序訪問(wèn)數(shù)據(jù)源,連接是交換數(shù)據(jù)所必需的環(huán)境。應(yīng)用程序可直接或間接訪問(wèn)數(shù)據(jù)源。Connection對(duì)象的常用屬性有:(1)ConnectionString屬性該屬性的主要功能是,返回或設(shè)置一個(gè)字符串值,這個(gè)字符串包含與數(shù)據(jù)源連接的信息。例如,連接E:\cbs\cbs13\vb\職工人事檔案.mdbDimMymdbAsNewADODB.Connection‘定義一個(gè)新的Connection對(duì)象MymdbMymdb.Connectionstring=”Provider=MicrosoftjetOLEDB.4.0;”&“Datasource=e:\cbs\cbs13\vb\職工人事檔案.mdb”‘定義連接方式Mymdb.Open‘將指定的連接打開(kāi)數(shù)據(jù)庫(kù)表VB程序設(shè)計(jì)教程58陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(2)ConnectionTimeout屬性該屬性的主要功能是,返回或設(shè)置等待連接打開(kāi)的時(shí)間值,單位為秒,默認(rèn)值為15秒。如果該屬性設(shè)置為0,則ADO將無(wú)限等待直到連接打開(kāi)為止。(3)State屬性該屬性的主要功能是,用來(lái)說(shuō)明某對(duì)象狀態(tài)是打開(kāi)還是關(guān)閉的,可以隨時(shí)使用State屬性來(lái)確定指定對(duì)象的當(dāng)前狀態(tài)。
3.命令(Command)對(duì)象通過(guò)已建立的連接發(fā)出的“命令”可以某種方式來(lái)操作數(shù)據(jù)源。一般情況下,命令可以在數(shù)據(jù)源中添加、刪除或更新數(shù)據(jù),或者在表中以行的格式檢索數(shù)據(jù)。Command對(duì)象的常用屬性有:(1)ActiveConnect屬性該屬性的主要功能是,用來(lái)設(shè)置Command或Recordset對(duì)象當(dāng)前所屬的Connection對(duì)象。VB程序設(shè)計(jì)教程59陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(2)CommandText屬性該屬性的主要功能是,用來(lái)設(shè)置要執(zhí)行的命令字符串,這個(gè)字符串可以是一個(gè)SQL語(yǔ)句,也可以是一存儲(chǔ)過(guò)程等等。(3)CommandType屬性該屬性的主要功能是,用來(lái)設(shè)置Command對(duì)象的類型,該屬性有以下4種不同的值:
①adcmdText,當(dāng)要執(zhí)行的字符串為SQL語(yǔ)句時(shí),選擇該值。
②adcmdTable,當(dāng)要執(zhí)行的字符串為一數(shù)據(jù)庫(kù)表時(shí),選擇該值。
③adcmdStoreproc,當(dāng)要執(zhí)行的字符串為一個(gè)存儲(chǔ)過(guò)程時(shí),選擇該值。
④
adcmdUnknown,當(dāng)設(shè)置該屬性值時(shí),則Command對(duì)象必須采用其他方法來(lái)決定要執(zhí)行的字符串的類型。
VB程序設(shè)計(jì)教程60陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)4.參數(shù)(Parameter)對(duì)象通常,命令需要的變量部分即“參數(shù)”可以在命令發(fā)布之前進(jìn)行更改。例如,可重復(fù)發(fā)出相同的數(shù)據(jù)檢索命令,但每一次均可更改指定的檢索信息。參數(shù)對(duì)執(zhí)行其行為類似函數(shù)的命令非常有用,這樣就可知道命令是做什么的,但不必知道它如何工作。5.記錄集(Recordset)對(duì)象如果命令是在表中按信息行返回?cái)?shù)據(jù)的查詢(行返回查詢),則這些行將會(huì)存儲(chǔ)在本地。對(duì)象模型將該存儲(chǔ)體現(xiàn)為Recordset
對(duì)象。但是,不存在僅代表單獨(dú)一個(gè)Recordset
行的對(duì)象。Recordset對(duì)象的常用屬性有:(1)Absoluteposition屬性該屬性的主要功能是,用來(lái)指定Recordset對(duì)象當(dāng)前記錄的序號(hào)。VB程序設(shè)計(jì)教程61陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(2)ActiveConnection屬性該屬性的主要功能是,用來(lái)返回或設(shè)置指定的Command或Recordset對(duì)象當(dāng)前所屬的Connection對(duì)象。(3)Bof屬性主要用于指示當(dāng)前記錄指針是否指向第一條記錄之前。(4)Eof屬性主要用于指示當(dāng)前記錄指針是否指向最后一條記錄之后。(5)Filter屬性主要用于為Recordset中的數(shù)據(jù)指定重篩選條件。(6)CursorType屬性主要用于指示在Recordset對(duì)象中使用的游標(biāo)類型。(7)RecordCount屬性主要用于指示Recordset對(duì)象的記錄數(shù)。(8)Source屬性主要用于指示Recordset對(duì)象中數(shù)據(jù)的來(lái)源,它可以是Command對(duì)象,也可以是一個(gè)SQL語(yǔ)句。(9)State屬性主要用于指示某對(duì)象狀態(tài)是打開(kāi)還是關(guān)閉的。
VB程序設(shè)計(jì)教程62陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)6.字段(field)對(duì)象一個(gè)記錄集行包含一個(gè)或多個(gè)“字段”。如果將記錄集看作二維網(wǎng)格,字段將排列構(gòu)成“列”。每一字段(列)都分別包含有名稱、數(shù)據(jù)類型和值的屬性,正是在該值中包含了來(lái)自數(shù)據(jù)源的真實(shí)數(shù)據(jù)。7.屬性(Property)對(duì)象每一個(gè)ADO對(duì)象都有一組唯一的“屬性”來(lái)描述或控制對(duì)象的行為。屬性有兩種類型:內(nèi)置和動(dòng)態(tài)。內(nèi)置屬性是ADO對(duì)象的一部分并且隨時(shí)可用。動(dòng)態(tài)屬性則由特別的數(shù)據(jù)提供者添加到ADO對(duì)象的屬性集合中,僅在提供者被使用時(shí)才能存在。8.錯(cuò)誤(Error)對(duì)象錯(cuò)誤隨時(shí)可在應(yīng)用程序中發(fā)生,通常是由于無(wú)法建立連接、執(zhí)行命令或?qū)δ承顟B(tài)(例如,試圖使用沒(méi)有初始化的記錄集)的對(duì)象進(jìn)行操作。每一個(gè)錯(cuò)誤發(fā)生時(shí),一個(gè)或多個(gè)Error對(duì)象將被放到Connection對(duì)象的Error集合中,當(dāng)另一個(gè)ADO操作發(fā)生錯(cuò)誤時(shí),Error集合將被清空。并在其中放入新的Error對(duì)象集。
VB程序設(shè)計(jì)教程63陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)五、Adodc控件在使用ADO訪問(wèn)數(shù)據(jù)庫(kù)表時(shí),需要編寫(xiě)大量的程序代碼,程序的流程也比較復(fù)雜,因此,在實(shí)際應(yīng)用上,一般可以用Adodc控件來(lái)替代ADO訪問(wèn)數(shù)據(jù)庫(kù)表的方法。使用Adodc控件完全不用編寫(xiě)許多程序代碼,只要在可視的環(huán)境下就可以完成許多操作了。1.添加Adodc控件到工具箱使用Adodc控件之前,必須先將該控件添加到當(dāng)前的工具箱中,添加的方法如下:(1)在主窗口下,單擊“工程”模塊下的“部件”選項(xiàng)。(2)在彈出的對(duì)話框中,選擇“控件”選項(xiàng)卡,如下圖所示。
VB程序設(shè)計(jì)教程64陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)VB程序設(shè)計(jì)教程65陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(3)選擇“MicrosoftADODataControl6.0(OLEDB)”、“MicrosoftDataGridControl6.0(OLEDB)”、“MicrosoftDataListControl6.0(OLEDB)”、“MicrosoftHierarchicalFlexGridControl6.0(OLEDB)”等4個(gè)選項(xiàng),使之該選項(xiàng)左邊方框中出現(xiàn)“√”標(biāo)識(shí)符,表示該選項(xiàng)被選中。(4)單擊“確定”按鈕后,Adodc等控件的圖標(biāo)將被添加到工具箱中,如下圖所示。
VB程序設(shè)計(jì)教程66陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)2.Adodc控件屬性(1)ConnectionString屬性該屬性的主要功能是,用來(lái)建立與數(shù)據(jù)源連接的所有信息,每項(xiàng)信息用分號(hào)分隔。該屬性為字符串類型,并有以下4個(gè)主要的參數(shù)。
①Provider參數(shù),用來(lái)指定數(shù)據(jù)源的名稱。
②FileName參數(shù),用來(lái)指定基于數(shù)據(jù)源的文件名稱。
③RemoteProvider參數(shù),用來(lái)指定在打開(kāi)一個(gè)客戶端連接時(shí),使用的數(shù)據(jù)源名稱。
④RemoteServer參數(shù),用來(lái)指定打開(kāi)一個(gè)客戶端連接時(shí),使用的服務(wù)器的路徑與名稱。(2)RecordSource屬性該屬性的主要功能是,用來(lái)決定從數(shù)據(jù)庫(kù)中檢索什么信息。該屬性通常是由一條SQL語(yǔ)句組成。VB程序設(shè)計(jì)教程67陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)(3)UserName屬性該屬性的主要功能是,用來(lái)指定用戶的名稱。該屬性可以在ADODC控件的屬性窗口中直接輸入,也可以在ADODC控件的“屬性頁(yè)”對(duì)話框或“數(shù)據(jù)鏈接屬性”對(duì)話框中設(shè)置。3.Adodc控件方法Adodc控件方法有以下幾種方法:(1)Refresh方法,主要用于刷新與ADODC控件連接的記錄集數(shù)據(jù)。(2)UpDateRecord方法,主要用于將數(shù)據(jù)綁定控件的當(dāng)前內(nèi)容寫(xiě)入到數(shù)據(jù)庫(kù)中。(3)Close方法,主要用于關(guān)閉打開(kāi)的對(duì)象及相關(guān)的對(duì)象。
VB程序設(shè)計(jì)教程68陳孟建沈美莉編著第三節(jié)數(shù)據(jù)控件與ADO數(shù)據(jù)訪問(wèn)技術(shù)4.Adodc控件事件Adodc控件提供了若干個(gè)可以編程的事件,這些事件可以分為兩種類型,即,Will事件和Complete事件。(1)WillMove和MoveComplete事件WillMove事件在當(dāng)前記錄的位置將要發(fā)生變化的時(shí)候發(fā)生,而MoveComplete事件則在位置改變完畢的時(shí)候發(fā)生。
(2)WillChangeField和FieldChangeComplete事件WillChangeField事件在當(dāng)前記錄集中的一個(gè)或者多個(gè)字段內(nèi)容發(fā)生變化的時(shí)候發(fā)生,而FieldChangeC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- MTX-PEG-Cy3-生命科學(xué)試劑-MCE-2911
- ABBV-706-生命科學(xué)試劑-MCE-4729
- 5-Fluoro-PB-22-N-4-fluoropentyl-isomer-生命科學(xué)試劑-MCE-3095
- 3-2-3-Dimethylphenyl-2-methylquinazolin-4-one-生命科學(xué)試劑-MCE-9046
- 二零二五年度租車平臺(tái)與車主合作服務(wù)協(xié)議
- 2025年度財(cái)務(wù)審核合同中的稅務(wù)合規(guī)審查標(biāo)準(zhǔn)
- 二零二五年度親子餐飲品牌區(qū)域加盟合作協(xié)議
- 二零二五年度新能源發(fā)電站電工維護(hù)服務(wù)合同
- 二零二五年度智慧城市建設(shè)聘用協(xié)議及勞務(wù)合同
- 二零二五年度城市綠化苗木移栽與病蟲(chóng)害防治合同
- 《基于新課程標(biāo)準(zhǔn)的初中數(shù)學(xué)課堂教學(xué)評(píng)價(jià)研究》
- 《微生物燃料電池MF》課件
- 貴州省黔東南州2024年七年級(jí)上學(xué)期數(shù)學(xué)期末考試試卷【附答案】
- 醫(yī)院廉潔自律承諾書(shū)
- 胚胎移植術(shù)前術(shù)后護(hù)理
- 企業(yè)招聘技巧培訓(xùn)
- 學(xué)校校本課程《英文電影鑒賞》文本
- 中考語(yǔ)文句子排序練習(xí)題(文本版)
- 華為HCSA-Presales-IT售前認(rèn)證備考試題及答案
- 預(yù)算績(jī)效評(píng)價(jià)管理機(jī)構(gòu)入圍投標(biāo)文件(技術(shù)方案)
- 小腸梗阻的護(hù)理
評(píng)論
0/150
提交評(píng)論