国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
VB程序設(shè)計(jì)數(shù)據(jù)庫編程技術(shù)

教學(xué)目標(biāo)及基本要求:

1、了解數(shù)據(jù)庫的發(fā)展歷程、基本概念及應(yīng)用。

2、了解SQL語言的基本概念及構(gòu)成。

3、掌握數(shù)據(jù)庫的設(shè)計(jì)與管理。

4、掌握使用控件訪問數(shù)據(jù)庫的方法。

教學(xué)重點(diǎn):

1、數(shù)據(jù)庫的設(shè)計(jì)與管理。

2、使用控件訪問數(shù)據(jù)庫。

教學(xué)難點(diǎn):

數(shù)據(jù)庫的設(shè)計(jì)與管理、使用控件訪問數(shù)據(jù)庫。

教學(xué)內(nèi)容:

1、數(shù)據(jù)庫基礎(chǔ)

2、數(shù)據(jù)庫的設(shè)計(jì)與管理

3、使用控件訪問數(shù)據(jù)庫

4、SQL簡介

教學(xué)時(shí)間:

2學(xué)時(shí)

主要內(nèi)容:

14 Visual Basic數(shù)據(jù)庫編程技術(shù)

 

14.1 數(shù)據(jù)庫基礎(chǔ)

14.1.1 數(shù)據(jù)庫的發(fā)展歷程

第一代:網(wǎng)狀、層次數(shù)據(jù)庫

第二代:關(guān)系數(shù)據(jù)庫

第三代:以面向?qū)ο竽P蜑橹饕卣鞯臄?shù)據(jù)庫

14.1.2 數(shù)據(jù)庫的基本概念

Visual Basic本身使用的是Access數(shù)據(jù)庫,是關(guān)系數(shù)據(jù)庫,數(shù)據(jù)庫文件的擴(kuò)展名為.MDB。

1.表(關(guān)系):用于存儲(chǔ)數(shù)據(jù),以行列方式組織,是關(guān)系數(shù)據(jù)庫的基本元素。

2.記錄(行):指表中的一行。

3.字段(列):指表中的一列。每列均有字段名。

4.索引:索引是建立在表上的單獨(dú)的物理數(shù)據(jù)庫結(jié)構(gòu),基于索引的查詢使數(shù)據(jù)庫獲取更為快捷。

5.關(guān)鍵字(主鍵):關(guān)系數(shù)據(jù)庫中的某個(gè)字段或某些字段的組合。

6.視圖:是一個(gè)與真實(shí)表相同的虛擬表,用于限制用戶可以看到和修改的數(shù)據(jù)量,簡化數(shù)據(jù)的表達(dá)。

14.1.3  數(shù)據(jù)庫的應(yīng)用

一個(gè)完整的數(shù)據(jù)庫系統(tǒng)除了包括可以共享的數(shù)據(jù)庫外,還包括用于數(shù)據(jù)處理的數(shù)據(jù)庫應(yīng)用系統(tǒng)。Visual Basic是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫開發(fā)平臺(tái),具有如下優(yōu)點(diǎn):

① 簡單性。

② 靈活性。

可擴(kuò)充性。

 

14.2 數(shù)據(jù)庫的設(shè)計(jì)與管理

Visual Basic提供了一個(gè)非常實(shí)用的工具程序,即可視化數(shù)據(jù)管理器(Visual Data Manager),使用它可以方便地建立數(shù)據(jù)庫、數(shù)據(jù)表和數(shù)據(jù)查詢。

14.2.1           建立一個(gè)數(shù)據(jù)庫

1.可視化數(shù)據(jù)庫管理器的啟動(dòng)

Visual Basic集成環(huán)境中,執(zhí)行“外接程序”菜單下的“可視化數(shù)據(jù)庫管理器”命令,即可打開“可視化數(shù)據(jù)庫管理器”VisData窗口。

2.創(chuàng)建Jet數(shù)據(jù)庫

(1) 選擇“文件”菜單中的“新建”項(xiàng),將出現(xiàn)一個(gè)子菜單à選擇數(shù)據(jù)庫類型à選擇數(shù)據(jù)庫版本。

(2) 出現(xiàn)創(chuàng)建數(shù)據(jù)庫對話框,在該對話框中選擇保存數(shù)據(jù)庫的路徑和數(shù)據(jù)庫文件名。

 (3) 單擊“保存”按鈕。

3. 編寫代碼建立數(shù)據(jù)庫文件

Visual Basic應(yīng)用程序中,還可以通過編寫代碼來建立一個(gè)數(shù)據(jù)庫文件,以及對數(shù)據(jù)庫進(jìn)行索引、查詢等許多操作。

14.2.2  建立數(shù)據(jù)表

使用可視化數(shù)據(jù)管理器建立數(shù)據(jù)庫后,就可以向該數(shù)據(jù)庫中添加數(shù)據(jù)表,還可以使用代碼來創(chuàng)建表、字段及索引。

1. 建立數(shù)據(jù)表結(jié)構(gòu)

具體操作步驟如下:

(1) 打開已經(jīng)建立的Access數(shù)據(jù)庫。

(2) 將鼠標(biāo)指針移到“數(shù)據(jù)庫窗口”區(qū)域內(nèi),單擊鼠標(biāo)右鍵出現(xiàn)快捷菜單,選擇“新建表”命令,則出現(xiàn)“表結(jié)構(gòu)”對話框,在對話框中輸入相應(yīng)數(shù)據(jù)。

(3) 單擊“添加字段”打開“添加字段”對話框。

      (4) 單擊“表結(jié)構(gòu)”對話框中的“添加索引”按鈕,將打開“添加索引”對話框。

2.修改表結(jié)構(gòu)

 (1) 打開要修改的數(shù)據(jù)表的數(shù)據(jù)庫。

(2) 在對話框中選擇“設(shè)計(jì)”項(xiàng),打開“表結(jié)構(gòu)”對話框進(jìn)行修改。

14.2.3  編輯數(shù)據(jù)表中數(shù)據(jù)

1. 輸入記錄

在“數(shù)據(jù)庫窗口”中雙擊數(shù)據(jù)表,執(zhí)行以下操作輸入數(shù)據(jù)記錄:

(1) 單擊“添加”按鈕,在打開的記錄編輯窗口中輸入該記錄;

(2) 單擊“更新”按鈕,確認(rèn)當(dāng)前輸入記錄有效,即更新數(shù)據(jù)庫;

(3) 逐條輸入相應(yīng)的記錄,重復(fù)(2),確認(rèn)輸入;

(4) 單擊“關(guān)閉”按鈕,關(guān)閉數(shù)據(jù)庫管理窗口。

2. 編輯記錄

打開數(shù)據(jù)表管理窗口,先通過滾動(dòng)條將要修改的記錄定位為當(dāng)前記錄,單擊“編輯”按鈕,在彈出的對話框中輸入新值后,再單擊“更新”按鈕。

3. 刪除記錄

打開數(shù)據(jù)表管理窗口,先通過滾動(dòng)條將要?jiǎng)h除的記錄定位為當(dāng)前記錄,單擊“刪除”按鈕,在彈出的對話框中單擊“是”按鈕,即可刪除記錄。

4. 過濾記錄

打開數(shù)據(jù)表管理窗口,單擊“過濾器”按鈕后,在彈出的對話框中輸入要過濾器表達(dá)式。

14.2.4           使用數(shù)據(jù)庫記錄和字段

1. Recordset對象

1Recordset對象類型

① 表類型:這種類型的Recordset對象直接表示數(shù)據(jù)庫中的一個(gè)表。

② 動(dòng)態(tài)集類型:這種類型的Recordset對象可以表示本地或鏈接表,也可以作為返回的查詢結(jié)果。

③ 快照集類型:這種類型的Recordset對象所包含的數(shù)據(jù)、記錄是固定的,它所表示的是數(shù)據(jù)庫某一時(shí)刻的狀況,就像照像一樣。

2)創(chuàng)建Recordset對象

與創(chuàng)建數(shù)據(jù)庫、表和字段一樣,首先要定義對象變量。

3)刪除Recordset對象

當(dāng)Recordset對象使用完畢后,就應(yīng)該將它刪除,也就是關(guān)閉已經(jīng)打開的表,刪除Recordset對象采用Close方法。

2. 增加、修改與刪除記錄

1)增加記錄

增加記錄首先要打開一個(gè)數(shù)據(jù)庫和一個(gè)表,然后用AddNew方法創(chuàng)建一條新記錄,AddNew語法格式為recordset.AddNew。

2)修改記錄

修改記錄使用Edit方法, Edit方法的語法格式為recordset.Edit。

3)刪除記錄

刪除一條記錄使用Delete方法,其語法格式為recordset. Delete。

3. 移動(dòng)記錄指針

當(dāng)Recordset對象建立后,系統(tǒng)會(huì)自動(dòng)生成一個(gè)指示器,指向表中的第一條記錄,稱之為記錄指針。

1AbsolutePosition屬性

在表中移動(dòng)指針,最直接的方法就是使用AbsolutePosition屬性,利用它可以直接將記錄指針移動(dòng)到某一條記錄處。其語法格式為Recordset.AbsolutePosition=N。

2BookMark屬性

利用BookMark屬性可以記下當(dāng)前記錄指針?biāo)谖恢茫?dāng)指針指向某一條記錄時(shí),系統(tǒng)就會(huì)產(chǎn)生惟一的標(biāo)識(shí)符存在BookMark屬性中,隨著指針位置的變化,BookMark中的值也變化。通常先將BookMark中的值存在一個(gè)變量中,記住這個(gè)位置,然后指針移動(dòng),當(dāng)需要時(shí),可以再將變量中的值賦給BookMark,這樣指針就可以移回原來的位置。

4. MoveMove系列方法

Visual Basic中使用MoveMove系列方法可以使指針相對于某一條記錄移動(dòng),即做相對移動(dòng),。Move方法的語法格式為: Recordset.Move rows [,start]

其中,RecordsetRecordset對象變量,表示一個(gè)打開的表。rows表示要相對移動(dòng)的行數(shù),如果為正值,表示向下移動(dòng);若為負(fù)值,表示向上移動(dòng)。start為一條記錄的BookMark值,指示從哪條記錄開始相對移動(dòng),如果這項(xiàng)不給出,則從當(dāng)前記錄開始移動(dòng)指針。一般情況下這項(xiàng)可以省略。

5. 記錄的查詢

1Seek方法

在使用Seek方法之前需要先建立索引,并且要確定索引字段,然后通過與Seek方法給出的關(guān)鍵字比較,將指針指向第一條符合條件的記錄。Seek方法的語法格式為:Recordset.Seek=比較運(yùn)算符,關(guān)鍵字1,關(guān)鍵字2

其中,RecordsetRecordset對象變量,表示一個(gè)打開的表。比較運(yùn)算符用于比較運(yùn)算,比如:“<”,“>”,“=”,“>=”,等等。關(guān)鍵字為當(dāng)前主索引的關(guān)鍵字段,如果有多個(gè)索引,則關(guān)鍵字段可以給出多個(gè)。

2Find方法

Seek方法可以定位符合條件的第一條記錄,當(dāng)需要用特殊方法定位記錄時(shí),可以使用Find方法。其語法格式分別為:

Recordset. FindFirst 條件表達(dá)式

Recordset. FindLast條件表達(dá)式

Recordset. FindNext條件表達(dá)式

Recordset. FindPrevious條件表達(dá)式

其中,RecordsetRecordset對象變量,表示一個(gè)打開的表。

注意:

Seek、Find后面給出關(guān)鍵字時(shí)要與索引字段的類型一致,否則將找不到需要的記錄。

 

14.3 使用控件訪問數(shù)據(jù)庫

14.3.1  Data控件

1. 在窗體上添加Data控件

雙擊工具箱中Data控件圖標(biāo) 或單擊后在窗體上拖動(dòng)出控件大小,都可以看到Data控件的外觀。

 

  2. Data控件的常用屬性

(1) Connect屬性:用來確定Data控件所連接的數(shù)據(jù)庫類型,默認(rèn)屬性值是Access。

(2) DatabaseName屬性:確定選擇要訪問數(shù)據(jù)庫文件。

(3) RecordSource屬性:確定要訪問的數(shù)據(jù)源。該屬性值可以是數(shù)據(jù)庫中的某一個(gè)數(shù)據(jù)表,也可以是一條SQL查詢語句。

3. 其他常用屬性

(1) RecordsetType屬性:確定Recordset(記錄集)對象的類型??梢赃x擇的記錄類型有三種,即表類型記錄集(0-Table默認(rèn)值)、動(dòng)態(tài)類型記錄集(1-Dynaset)及靜態(tài)類型記錄集,靜態(tài)類型記錄集又常稱為快照類型記錄集(2-SnapShot)。

(2) Exclusive屬性:確定是否按照獨(dú)享方式打開數(shù)據(jù)庫,在需要多用戶訪問數(shù)據(jù)庫時(shí)需要將該屬性值設(shè)置為False。

(3) Options屬性:用來決定記錄集的特征。例如,在一個(gè)多用戶環(huán)境中,可以設(shè)置Options屬性來禁止他人所做的修改。

(4) BOFActionEOFAction屬性:這兩個(gè)屬性決定當(dāng)該控件位于光標(biāo)開始(記錄集的EOF屬性值為True)或末尾(記錄集的BOF屬性值為True)時(shí)的行為。

4. Data控件常用的方法

1AddNew方法

AddNew用于添加一個(gè)新記錄,新記錄的每個(gè)字段如果有默認(rèn)值將以默認(rèn)值表示,否則為空白。

2Delete方法

Delete用于刪除當(dāng)前記錄的內(nèi)容,在刪除后應(yīng)將當(dāng)前記錄移到下一條記錄。

3Edit方法

Edit用于對當(dāng)前記錄進(jìn)行編輯修改。

4Find方法群組

Find方法群組用于查找記錄,它包含FindFirstFindLast、FindNextFindPrevious方法,這4種方法查找的起點(diǎn)不同。

5Move方法群組

Move方法群組用于移動(dòng)記錄,它包含MoveFirst(移到第一條記錄)、MoveLast(移到最后一條記錄)、MoveNext(移到下一條記錄)和MovetPrevious(移到前一條記錄)方法。

6Refresh

如果DatabaseName、ReadOnly、ExclusiveConnect屬性的設(shè)置值發(fā)生改變,可以使用Refresh方法打開或重新打開數(shù)據(jù)庫,用Refresh方法可以更新數(shù)據(jù)控件的集合內(nèi)容。

7Seek方法

Seek方法適用于數(shù)據(jù)表類型(Table)記錄集,通過一個(gè)已被設(shè)置為索引(Index)的字段,查找符合條件的記錄,并使該記錄為當(dāng)前記錄。

8Update方法

Update方法用于將修改的記錄內(nèi)容保存到數(shù)據(jù)庫中。該方法一般用在AddNew方法、Edit方法之后。

9UpdateControls方法

UpdateControls方法可以從數(shù)據(jù)控件的記錄集中再取回原先的記錄內(nèi)容,即恢復(fù)原先值。

10Close方法

Close方法用于關(guān)閉記錄集。該方法也能用在數(shù)據(jù)庫對象上,將數(shù)據(jù)庫關(guān)閉。

5. Data控件常用的事件

1Reposition事件

Reposition事件是當(dāng)某一個(gè)記錄成為當(dāng)前記錄之后觸發(fā)。通常利用該事件對當(dāng)前記錄的數(shù)據(jù)內(nèi)容進(jìn)行計(jì)算,觸發(fā)該事件有以下幾種原因:

① 單擊數(shù)據(jù)控件的幾個(gè)按鈕,進(jìn)行記錄移動(dòng);

② 使用Move方法群組;

③ 使用Find方法群組;

④ 其他可改變當(dāng)前記錄的屬性或方法。

事件過程如下:

Private Sub Data1_Reposition()

     '事件處理程序

End Sub

2Validate事件

Validate事件與Reposition事件不同,是當(dāng)某一記錄成為當(dāng)前記錄之前,或是在UpdateDelete、UnloadClose操作之前觸發(fā)。

事件過程如下:

Private Sub Data1_Validate(Action As Integer, Save As Integer)

     '事件處理程序

End Sub

其中,Action用來指示引發(fā)這種事件的操作;Save用來指定鏈接的數(shù)據(jù)是否修改了。

3Error事件

當(dāng)Data控件產(chǎn)生執(zhí)行錯(cuò)誤時(shí)觸發(fā)。事件過程如下:

Private Sub Data1_Error (DataErr As Integer, Response As Integer)

     '事件處理程序

End Sub

其中,DataErr為返回的錯(cuò)誤號(hào);Response設(shè)置執(zhí)行的動(dòng)作,0表示繼續(xù)執(zhí)行,1表示顯示錯(cuò)誤信息。

6. 與控件綁定

控件箱中的常用控件PictureBox、Label、TextBox、CheckBoxImage、OLE、ListBoxComBox控件都與DataRecordset的一個(gè)字段綁定,與Data控件綁定的控件稱為數(shù)據(jù)感知控件。

1)數(shù)據(jù)感知控件的相關(guān)屬性

DataSource屬性:用于在下拉列表中選擇想要綁定的控件名稱。

DataField屬性:用于在下拉列表中選擇要顯示的字段名稱。

2)綁定數(shù)據(jù)控件的步驟

① 將數(shù)據(jù)控件(Data1)放置在窗體中,將數(shù)據(jù)感知控件TextBox放置在窗體中并改名為“圖書編號(hào)”。

② 設(shè)置Data1DatabaseName屬性為"d:\tsgl\xxjs_book.mdb"文件,設(shè)置Data1Record-Source屬性為"library"表。

③ 設(shè)置“圖書編號(hào)”的DataSource屬性為Data1,設(shè)置“圖書編號(hào)”的DataField屬性為“圖書編號(hào)”字段。

14.3.2  DBGrid控件

1. DBGrid控件瀏覽數(shù)據(jù)表

在使用DBGrid控件之前,必須通過“工程”菜單的“部件”選取Microsoft DataGrid Control 6.0SP6)。

DBGrid控件依靠兩個(gè)對象:Data控件的Recordset對象和DBGrid本身的Columns集合。DBGrid控件實(shí)際上是Columns對象的集合,其中每個(gè)對象都有不同數(shù)量的行,每一列對應(yīng)著數(shù)據(jù)庫表的一個(gè)字段,而每一行則對應(yīng)一個(gè)記錄。

2. DBGrid控件瀏覽和顯示數(shù)據(jù)表的步驟

(1) 在新窗體中添加一個(gè)數(shù)據(jù)控件(Data1),再設(shè)置其DatabaseName屬性和RecordSource屬性為要顯示的數(shù)據(jù)庫和表。

(2) 在窗體中添加一個(gè)DBGrid控件,并設(shè)置DatabaseSource為剛創(chuàng)建的Data控件。

(3) 設(shè)置DBGrid控件的其他相關(guān)屬性。

(4) 運(yùn)行程序。

3. DBGrid控件的運(yùn)行操作

在運(yùn)行時(shí),DBGrid控件從基本Recordset對象中顯示記錄。

14.3.3  ADO Data控件

ADO Data控件不是Visual Basic的內(nèi)部控件,在使用之前可以通過單擊“工程”菜單中的“部件”命令或用鼠標(biāo)右鍵單擊控件箱,在快捷菜單中選擇“部件”命令,打開“部件”對話框選擇“Microsoft ADO Data Control6.0Sp6)(OLEDB)”復(fù)選框,則在控件箱中增加了ADO Data控件(Adodc)的圖標(biāo) ,單擊它可快速建立數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。

1. ADO Data控件的功能

(1) 連接一個(gè)本地?cái)?shù)據(jù)庫或遠(yuǎn)程數(shù)據(jù)庫。

(2) 打開一個(gè)指定的數(shù)據(jù)庫表,或定義一個(gè)基于結(jié)構(gòu)化查詢語言(SQL)的查詢、存儲(chǔ)過程或該數(shù)據(jù)庫中的表的視圖的記錄集合。

(3) 將數(shù)據(jù)字段的數(shù)值傳遞給數(shù)據(jù)綁定控件,可以在這些控件中顯示或修改這些數(shù)值。

(4) 添加新記錄,或根據(jù)修改顯示在綁定的控件中的數(shù)據(jù)來更新一個(gè)數(shù)據(jù)庫。

2. ADO Data控件的屬性

 (1) ConnectionString屬性:用于連接字符串,可以包含進(jìn)行一個(gè)連接所需的所有設(shè)置值,該字符串所傳送的參數(shù)與驅(qū)動(dòng)程序有關(guān)。

(2) UserName屬性:用于指定用戶的名稱,當(dāng)數(shù)據(jù)庫受密碼保護(hù)時(shí),需要在ConnectionString中指定屬性。。

(3) RecordSource屬性:用于設(shè)置要鏈接的表或一條SQL查詢語句??梢栽凇皩傩浴贝绑w中將“記錄源”的屬性設(shè)置為一個(gè)SQL語句。

(4) CommandType屬性:用于指定RecordSource屬性的取值類型。告訴數(shù)據(jù)提供者Source屬性是一條SQL語句、一個(gè)表的名稱、一個(gè)存儲(chǔ)過程,還是一個(gè)未知的類型。

(5) Password屬性:用于指定密碼,在訪問一個(gè)受保護(hù)的數(shù)據(jù)庫時(shí)是必需的。與ProviderUserName屬性類似,如果在ConnectionString屬性中指定了密碼,那么將覆蓋此屬性中指定的值。

(6) CursorType屬性:用于決定記錄集是靜態(tài)類型、動(dòng)態(tài)類型還是鍵集光標(biāo)類型。

(7) Mode屬性:用于決定想用記錄集進(jìn)行什么操作,只讀、讀寫還是其他設(shè)置。

(8) ConnectionTimeout屬性:用于設(shè)置等待建立一個(gè)連續(xù)的時(shí)間,以秒為單位。如果連接超時(shí),則返回一個(gè)錯(cuò)誤。

(9) BOFAction、EOFAction屬性:用于決定當(dāng)控件位于光標(biāo)開始和末尾時(shí)的行為。

3. ADO Data控件對記錄的操作方法

 (1) AddNew方法:用于在ADO Data控件的記錄集中添加一條新記錄,其使用語法為:Adodcname.Recordset.AddNew,Adodcname是一個(gè)ADO Data控件的名稱。

(2) Edit方法:用于在ADO Data控件的記錄集中對當(dāng)前記錄進(jìn)行修改,其使用語法為:Adodcname.Recordset.Edit,修改后調(diào)用Update方法保存記錄。

(3) Delete方法:用于在ADO Data控件的記錄集中刪除當(dāng)前記錄,其使用語法為:Adodcname.Recordset.Delete

(4) Update方法:用于把內(nèi)存緩沖區(qū)中的內(nèi)容寫進(jìn)數(shù)據(jù)庫文件,保存對數(shù)據(jù)庫所做的改動(dòng),該方法一般用在AddNew 、Edit方法之后。其使用語法為:Adodcname.Recordset.Update

(5) Move方法群組:Move方法群組是用于在ADO Data控件的記錄集中移動(dòng)記錄。MoveFirstMoveLast、MoveNextMovetPrevious分別移到第一條記錄、最后一條記錄、下一條記錄和上一條記錄,其使用語法為:

Adodcname.Recordset.Move 8   '從當(dāng)前記錄開始向下移動(dòng)8條記錄

Adodcname.Recordset. MoveFirst       移動(dòng)到第一條記錄

Adodcname.Recordset. MoveLast        移動(dòng)到最后一條記錄

Adodcname.Recordset. MoveNext        從當(dāng)前記錄移動(dòng)到下一條記錄

Adodcname.Recordset. MovetPrevious  從當(dāng)前記錄移動(dòng)到上一條記錄

(6) Close方法:用于關(guān)閉記錄集,其使用語法為Adodcname.Recordset.close。

4. ADO Data控件的事件

 (1) WillMoveMoveComplete事件:WillMove事件是在當(dāng)前記錄的位置即將發(fā)生時(shí)觸發(fā),而MoveComplete事件是在位置改變完成時(shí)觸發(fā)。

(2) WillChangeFieldFiledChangeComplete事件:WillChangeField事件是在當(dāng)前記錄集中當(dāng)前記錄的一個(gè)或多個(gè)字段發(fā)生變化時(shí)觸發(fā),而FiledChangeComplete事件則是當(dāng)字段的值發(fā)生變化完成后觸發(fā)。

(3) WillChangeRecordRecordChangeComplete事件:WillChangeRecord事件是當(dāng)記錄集中的一個(gè)記錄或多個(gè)記錄發(fā)生變化前觸發(fā),而RecordChangeComplete事件則是當(dāng)記錄發(fā)生變化完成后觸發(fā)。

 

14.3.4  ADO編程模型

ADO的核心是CommandRecordSetConnection對象。它們之間的關(guān)系是Command對象、RecordSet對象必須先通過Connection對象來建立數(shù)據(jù)源連接。

(1) Connection對象:Connection對象用于建立與數(shù)據(jù)源的連接。

(2) Command對象:在建立Connection后,可以發(fā)出命令對數(shù)據(jù)源進(jìn)行操作。

(3) RecordSet對象:RecordSet對象只代表記錄集,是基于某一連接的表或是Command對象的執(zhí)行結(jié)果。

在使用ADO對象編程之前,要將ADO函數(shù)庫設(shè)置為引用項(xiàng)目,通過單擊“工程”菜單中的“引用”命令,選擇“Microsoft ActiveX Data Object 2.1 Library”復(fù)選框。還可以使用代碼編程來對ADO對象模型的Command、RecordSetConnection對象進(jìn)行操作。程序代碼如下:

Option Explicit      '在通用聲明定義

Private cnBook AS New ADODB.Connection

Private cmBook AS NEW ADODB. Command

Private rsBook AS NEW ADODB. RecordSet

利用ADOCommand對象、RecordSet對象和Connection對象進(jìn)行編程的模型使用如下步驟:

① 創(chuàng)建Connection對象,設(shè)置好連接字符串(ConnectionString屬性),并使用Open方法與數(shù)據(jù)源建立連接。

② 創(chuàng)建Command對象,并設(shè)置該對象的活動(dòng)連接(ActiveConnection屬性),為上一步已建好的Connection對象,指定要執(zhí)行的數(shù)據(jù)庫操作命令(CommandText屬性),命令可以是任意的Select、InsertUpdate語句等。

③ 使用Command對象的Execute方法執(zhí)行命令,如果是查詢命令,該方法會(huì)返回一個(gè)RecordSet對象。

④ 將上一步返回的RecordSet對象保存到變量中,并利用該變量來處理記錄。

⑤ 使用Close方法關(guān)閉與Connection對象和RecordSet對象關(guān)聯(lián)的系統(tǒng)資源(與Open方法相反),此時(shí)對象可以繼續(xù)使用。

使用Set對象=Nothing來徹底刪除每個(gè)對象,對象刪除后必須重新創(chuàng)建才能再使用。

 

14.4  SQL簡介

 14.4.1  SQL概述

SQL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,是一種綜合的、通用的、功能強(qiáng)大的及簡單易學(xué)的語言,它的主要特點(diǎn):

1. 綜合統(tǒng)一

SQL集數(shù)據(jù)定義(Data Define)、數(shù)據(jù)查詢(Data Query)、數(shù)據(jù)操縱(Data Manipulation)和數(shù)據(jù)控制(Data Control)功能于一體。

2. 面向集合的操作方式

SQL采用面向集合的操作方式,無論是查詢操作,還是刪除、插入及更新操作,它操作的對象和結(jié)果都是一個(gè)記錄的集合。

3. 高度非過程化

SQL是非過程化的語言,在使用SQL進(jìn)行數(shù)據(jù)庫操作時(shí),只須提出“做什么”,而不需要說明“該怎么去做”。

4. 同一種語法結(jié)構(gòu)提供兩種執(zhí)行方式

SQL既是一種自含式語言,又是一種嵌入式語言。它既可以獨(dú)立地采用聯(lián)機(jī)交互的方式對數(shù)據(jù)庫進(jìn)行操作,也可以潛入到高級語言程序中。

5. 語言簡潔、易學(xué)易用

 

 14.4.2  SQL的構(gòu)成

SQL由命令、子語句、運(yùn)算符和函數(shù)等基本元素構(gòu)成,通過這些元素組成語句對數(shù)據(jù)庫進(jìn)行操作。

1. SQL命令

SQL對數(shù)據(jù)庫所進(jìn)行的數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制等操作都是通過SQL命令實(shí)現(xiàn)的,常見的SQL命令見表14-2。

14-2                       常用的SQL命令

   

功 能 說 明

   

功 能 說 明

SELECT

用于在數(shù)據(jù)庫中查找滿足某特定條件的記錄

DROP

用于刪除數(shù)據(jù)庫中的表和索引

CREATE

用于創(chuàng)建新的表、字段和索引

ALTER

用于通過添加字段或修改字段來修改表

INSERT

用在數(shù)據(jù)庫中添加記錄

UPDATE

用于改變指定記錄和字段的值

DELETE

用于從數(shù)據(jù)庫表中刪除記錄

 

 

2. 子句

SQL命令中的子句是用來修改查詢條件的,通過它可以定義要選擇和要操作的數(shù)據(jù),常用的SQL子句見表14-3

14-3                       常用的SQL子句

   

功 能 說 明

   

功 能 說 明

FROM

用來指定需要從中選擇記錄的表名

HAVING

用來指定每個(gè)群組需要滿足的條件

WHERE

用來指定選擇的記錄需要滿足的條件

ORDER BY

按指定的次序?qū)τ涗浥判颍?span lang="EN-US">ASC為升序DESC為降序

GROUP BY

用來把所選擇的記錄分組

 

 

3. 運(yùn)算符

SQL運(yùn)算符見表14-4。

14-4                      常用的SQL運(yùn)算符

運(yùn)   

功 能 說 明

比較運(yùn)算符

<<=、>、>=< >、=

分別為小于、小于或等于、大于、大于或等于、不等于、等于

BETWEEN

用來判斷表達(dá)式的值是否在指定值的范圍

LIKE

在多個(gè)、單個(gè)、特定字符、單個(gè)數(shù)字、范圍或范圍之外等匹配種類模式中使用

IN

用來判斷表達(dá)式的值是否在指定的列表中出現(xiàn)

邏輯運(yùn)算符

AND

邏輯與

OR

邏輯或

NOT

邏輯非

4. 函數(shù)

SQL所提供的統(tǒng)計(jì)函數(shù)見表14-5

14-5                      SQL常用統(tǒng)計(jì)函數(shù)

    數(shù)

功 能 說 明

    數(shù)

功 能 說 明

SUM

用于返回指定段中值的總和

MIN

用于返回指定段中的最小值

COUNT

用于計(jì)算所選擇記錄的個(gè)數(shù)

AVG

用于計(jì)算指定段中值的平均數(shù)

MAX

用于返回指定段中的最大值

 

 

 

14.4.3  SQLVisual Basic中的應(yīng)用

1. 建立、修改或刪除Access數(shù)據(jù)庫中的表

語法:CREATE TABLE 數(shù)據(jù)表([字段名稱1]數(shù)據(jù)類型(長度),[字段名稱2]數(shù)據(jù)類型(長度)

例如,建立S_BOOK數(shù)據(jù)表

CREATE  TABLE  S_book ([書名] text 40),[書號(hào)] Text (5))

2. 建立或刪除Access數(shù)據(jù)庫中表的索引

語法:DROP {TABLE 數(shù)據(jù)表/INDEX index ON數(shù)據(jù)表}

例如,從用戶列表中,刪除編號(hào)索引 / 從數(shù)據(jù)庫中,刪除整個(gè)表

DROP INDEX MyIndex ON 用戶列表 / DROP TABLE 用戶列表

3. 對記錄進(jìn)行插入、刪除或更新操作

語法:INSERT INTO 數(shù)據(jù)表(字段名1,字段名,VALUE(數(shù)據(jù)1,數(shù)據(jù)2,

DELETE (字段名)FROM 數(shù)據(jù)表 WHERE 子句

(其中,字段名可以省略,因?yàn)橐话愣际莿h除整條記錄)

UPDATE (字段名) SET 新數(shù)據(jù)值 WHERE 子句

例如,將數(shù)據(jù)表S_BOOK中所有“數(shù)量”少于10的字段都改為10

UPDATE S_BOOK SET數(shù)量=10 WHERE數(shù)量<10

4. 從一個(gè)或多個(gè)數(shù)據(jù)庫的一個(gè)或多個(gè)表中獲取數(shù)據(jù)

語法:SELECT 字段列表FROM子句WHERE子句GROUP BY子句HAVING子句ORDER BY子句。

例如,選擇圖書信息表S_BOOK中“書名”字段含有“計(jì)算機(jī)”的書,并按升序排列書號(hào)。

SELECT * FROM S_BOOK WHERE S_BOOK.書名 LIKE '計(jì)算機(jī)*'ORDER BY書號(hào)DESC

5. 對表中數(shù)據(jù)進(jìn)行統(tǒng)計(jì),比如求和、求最大/最小值、計(jì)數(shù)、求平均值等

語法:SELECT COUNT字段列表 AS xx FROM 子句 WHERE子句

例如,查詢英語成績不及格的人數(shù)、英語平均分及最高分

SELECT COUNT * AS 人數(shù) FROM 成績表 WHERE 數(shù)學(xué)<60

SELECT AVG 數(shù)學(xué) AS平均分, MAX 數(shù)學(xué) AS 最高分 FROM 成績表

 

小結(jié):

數(shù)據(jù)庫用于儲(chǔ)存結(jié)構(gòu)化數(shù)據(jù),它的應(yīng)用無處不在。Visual Basic不僅具有強(qiáng)大的數(shù)據(jù)庫操作功能,而且是一個(gè)優(yōu)秀的數(shù)據(jù)庫開發(fā)平臺(tái),提供了包含數(shù)據(jù)管理器(Data Management)、數(shù)據(jù)控件(Data Control)以及ADC(ActiveX 數(shù)據(jù)對象)等功能強(qiáng)大的工具,利用Visual Basic能夠開發(fā)各種數(shù)據(jù)庫應(yīng)用系統(tǒng),建立多種類型的數(shù)據(jù)庫,并可以管理、維護(hù)和使用這些數(shù)據(jù)庫。

 

作業(yè):

1.?dāng)?shù)據(jù)表、字段、記錄與數(shù)據(jù)庫的關(guān)系如何?

2.怎樣使用“可視化數(shù)據(jù)庫管理器”來建立和修改數(shù)據(jù)庫?

3.在使用Find方法查找記錄時(shí),如何判斷查找是否成功?

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
第九章 VB的數(shù)據(jù)庫操作
第10章 Visual Basic數(shù)據(jù)庫編程
VB數(shù)據(jù)庫編程技術(shù)
VB精品課程 - 濟(jì)南鐵道職業(yè)技術(shù)學(xué)院 信息工程系? Limber Senovo
《Visual Basic程序設(shè)計(jì)教程(第3版)》第12章 數(shù)據(jù)庫編程
Aaa.數(shù)據(jù)庫基礎(chǔ)知識(shí)(選拔性考試)1
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服