第10章-Visual-Basic數(shù)據(jù)庫編程ppt課件(全)_第1頁
第10章-Visual-Basic數(shù)據(jù)庫編程ppt課件(全)_第2頁
第10章-Visual-Basic數(shù)據(jù)庫編程ppt課件(全)_第3頁
第10章-Visual-Basic數(shù)據(jù)庫編程ppt課件(全)_第4頁
第10章-Visual-Basic數(shù)據(jù)庫編程ppt課件(全)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第10章 Visual Basic數(shù)據(jù)庫編程 VB作為重要的應(yīng)用程序開發(fā)工具,其主要功能除設(shè)計界面外,還有數(shù)據(jù)庫應(yīng)用程序的開發(fā)功能。一個數(shù)據(jù)庫應(yīng)用程序包含前端界面和后臺的數(shù)據(jù)庫,VB可連接的數(shù)據(jù)庫主要有Microsoft Access、 FoxPro、Excel、SQLserver數(shù)據(jù)庫等,同時VB的集成開發(fā)環(huán)境中也包含了自己的數(shù)據(jù)庫(其實質(zhì)是ACCESS數(shù)據(jù)庫)設(shè)計器,使VB成為一個簡單方便的數(shù)據(jù)庫應(yīng)用程序設(shè)計工具?!局饕獌?nèi)容】數(shù)據(jù)庫及數(shù)據(jù)表數(shù)據(jù)源及連接SQL語言基礎(chǔ)應(yīng)用10.1 數(shù)據(jù)庫基本概念10.2 結(jié)構(gòu)化查詢語言SQL10.3 使用數(shù)據(jù)庫管理器 10.4 Data控件 10.5 DBG

2、rid控件 10.6 ADO Data 控件 10.1 數(shù)據(jù)庫基本概念10.1.1 關(guān)系數(shù)據(jù)庫的基本結(jié)構(gòu) 1.表 2.記錄 3.字段表 4.關(guān)系 5.索引 6.視圖 7.存儲過程10.1.2 Microsoft Jet 引擎 Microsoft Jet引擎提供了數(shù)據(jù)的物理存儲結(jié)構(gòu),也提供了數(shù)據(jù)處理的多種功能,如數(shù)據(jù)檢索和更新,它還提供了保證數(shù)據(jù)有效性驗證和數(shù)據(jù)完整性的方法。在數(shù)據(jù)庫的安全性上,Jet引擎支持用戶口令和用戶的訪問權(quán)限的設(shè)置。另外, Jet引擎還支 持SQL語句。 Visual Basic提供了基于Microsoft Jet數(shù)據(jù)庫引擎的數(shù)據(jù)訪問能力。而Jet引擎為Visual Ba

3、sic提供了功能強(qiáng)大的、面向?qū)ο蟮腄AO編程接口。Visual Basic提供了兩種與Jet數(shù)據(jù)庫引擎接口的方法:Data控件和數(shù)據(jù)訪問對象。Data控件 使用Data控件能夠輕松、快速地開發(fā)出使用的數(shù)據(jù)庫應(yīng)用程序。當(dāng)用戶使用Data控件時,用戶無須編程或只需少量代碼就能打開數(shù)據(jù)庫,并瀏覽數(shù)據(jù)內(nèi)容。但Data控件只能訪問數(shù)據(jù)庫而無法創(chuàng)建數(shù)據(jù)庫,而且它沒提供增加和刪除記錄的功能。此外,由于Data控件的一些自動功能,如自動更新等,使得用戶不能完全控制數(shù)據(jù)庫??梢钥闯?,使用Data控件編程適合一些簡單或需短時間開發(fā)的應(yīng)用程序。數(shù)據(jù)訪問對象 使用數(shù)據(jù)訪問對象(DAO)編寫數(shù)據(jù)庫應(yīng)用程序,從數(shù)據(jù)庫的創(chuàng)

4、建,表、字段和索引的創(chuàng)建和設(shè)計,建立表間的關(guān)系,到設(shè)計數(shù)據(jù)處理的各項操作,都由程序員在編寫代碼中實現(xiàn),這使得程序員能有很大的靈活性,但同時也提出更高的要求。由于用數(shù)據(jù)訪問對象編寫的數(shù)據(jù)庫應(yīng)用程序可以在程序運(yùn)行中創(chuàng)建數(shù)據(jù)庫,因此能得到諸多好處,如編寫的數(shù)據(jù)庫軟件就不必包括空的數(shù)據(jù)庫文件,數(shù)據(jù)庫應(yīng)用程序很容易適應(yīng)不同的需求和環(huán)境,程序的擴(kuò)展也更容易等。但使用DAO編程,由于代碼的增多,代碼的維護(hù)困難也增大了,也較容易產(chǎn)生錯誤,開發(fā)時間也增大了。 10.1.3 相關(guān)概念數(shù)據(jù)訪問對象模型結(jié)構(gòu)化查詢語言SQLODBC和數(shù)據(jù)庫 數(shù)據(jù)庫訪問 10.2 結(jié)構(gòu)化查詢語言SQL10.2.1 SQL 語言的組成SQ

5、L語言包含查詢、操縱、定義和控制等幾個部分。各種語句對應(yīng)的動詞如下:數(shù)據(jù)查詢:SELECT。數(shù)據(jù)定義:CREATE,DROP。數(shù)據(jù)操縱:INSERT, UPDATE, DELETE。數(shù)據(jù)控制:GRANT,REVOKE。10.2.2 SQL語句使用舉例以“表10.1”學(xué)生信息表為基礎(chǔ),下面是一些SQL語句的例子:例如,查詢學(xué)號為wl0603的學(xué)生信息:select * from 學(xué)生表 where studentID = wl0603查詢城市為蘭州的學(xué)生姓名:select name from 學(xué)生表 where city = 蘭州市添加一個新記錄:Insert into 學(xué)生表(studentI

6、D,name,city) value(wl0607王萍,甘肅)刪除一條記錄:delete 學(xué)生表 where studentID = wl060310.3 使用數(shù)據(jù)庫管理器 VB程序含有一個可視化數(shù)據(jù)管理器,使用它可以方便地建立數(shù)據(jù)庫、數(shù)據(jù)表和數(shù)據(jù)查詢。由于它功能完整,易于操作,因此很容易掌握。10.3.1 建立數(shù)據(jù)庫1.數(shù)據(jù)庫管理器的啟動2.創(chuàng)建數(shù)據(jù)庫 10.3.2 添加數(shù)據(jù)表 使用可視化數(shù)據(jù)管理器創(chuàng)建好數(shù)據(jù)后,就可以向數(shù)據(jù)庫中添加數(shù)據(jù)表。下面就添加一個Access數(shù)據(jù)庫表。建立表結(jié)構(gòu)修改數(shù)據(jù)表結(jié)構(gòu) 10.3.3 數(shù)據(jù)表中數(shù)據(jù)的編輯1.使用“數(shù)據(jù)管理器”工具欄2.數(shù)據(jù)記錄的輸入與修改10.4

7、 Data控件 Data控件是VB中訪問數(shù)據(jù)庫的重要控件,它支持大多數(shù)與數(shù)據(jù)庫有關(guān)的操作。通過它可以開發(fā)非常復(fù)雜的數(shù)據(jù)庫應(yīng)用程序。10.4.1 Data控件的屬性 使用Data控件可在不添加任何代碼的情況下完成如下功能:完成對本地或遠(yuǎn)程數(shù)據(jù)庫的連接。打開指定的數(shù)據(jù)庫表,或者是基于SQL的查詢集。將表中字段傳至數(shù)據(jù)綁定控件,并針對數(shù)據(jù)綁定控件中的修改來更新數(shù)據(jù)庫。Data控件有很多屬性,下面我們選擇重要的進(jìn)行介紹:Connect屬性 設(shè)置連接的數(shù)據(jù)庫類型。VB提供了7種可訪問的數(shù)據(jù)庫類型,其中比較常用是的Microsoft Access,dBase和FoxPro等。可在屬性窗口中單擊Connec

8、t屬性右邊的按鈕;也可以在使用時用代碼進(jìn)行設(shè)置。如果使用Microsoft Access的數(shù)據(jù)庫格式,不需要設(shè)置這個屬性。DatabaseName屬性 設(shè)置被訪問的數(shù)據(jù)庫的名稱和路徑??赡芡ㄟ^DatabaseName屬性右邊的按鈕來設(shè)置;也可以通過代碼在運(yùn)行時設(shè)置。Exclusive屬性 設(shè)置是單用戶方式還是多用戶方式打開指定的數(shù)據(jù)庫。當(dāng)設(shè)置為True時是單用戶方式。Recordsource屬性 返回或設(shè)置數(shù)據(jù)源為底層表、SQL語句或QueryDef對象。 10.4.2 Data控件的方法 Data控件的常用方法:Refresh方法 在Data控件打開或重新打開數(shù)據(jù)庫的內(nèi)容時,該方法可以更新D

9、ata控件的數(shù)據(jù)設(shè)置。UpdateRecord方法 把當(dāng)前的內(nèi)容保存到數(shù)據(jù)庫中去,但不觸發(fā)Validate事件。UpdateControls方法 將Data控件記錄中的當(dāng)前記錄填充到某個數(shù)據(jù)綁定控件。10.4.3 Recordset對象 Recordset是由Data控件返回的代表選定記錄集的一個對象,它是一個屬性也是一個對象,并且有自己的方法和屬性。Recordset的方法MoveFirst,MoveNext,MovePrevious和MoveLast方法FindFirst,FindLast,FindNext和FindPrevious方法AddNew,Edit,Delete和Update方法

10、Close方法10.5 DBGrid控件 VB提供了一個簡單、方便、快捷的數(shù)據(jù)訪問對象Data控件,便用它只需少量的代碼即可訪問多種數(shù)據(jù)庫中的數(shù)據(jù)。但是,只是Data控件是不夠的,必須使用數(shù)據(jù)綁定控件來顯示、編輯和查詢數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)綁定控件也叫數(shù)據(jù)識別控件,可通過它訪問數(shù)據(jù)庫的信息。當(dāng)一個控件通過設(shè)置屬性被綁定到Data控件時,VB會把 從當(dāng)前數(shù)據(jù)庫記錄取出的相應(yīng)字段值應(yīng)用于該控件,控件就顯示數(shù)據(jù)并接受更改。 在VB中可以與Data控件一起使用的標(biāo)準(zhǔn)綁定控件包括:復(fù)選框、圖像框、圖片框、標(biāo)簽、文本框、列表框和組合框。大多數(shù)數(shù)據(jù)綁定控件都有DataSource和DataField屬性,前者

11、指定綁定的數(shù)據(jù)源,后者指定綁定的字段。本節(jié)主要討論DBGrid控件.10.5.1 用DBGrid控件瀏覽數(shù)據(jù)庫表 在使用DBGrid控件之前,必須通過 “工程”菜單的 “部件”選取Microsoft Data Bound Grid Control 5.0,如圖10.7所示。單擊 “確定”按鈕之后,DBGrid控件的圖標(biāo)將出現(xiàn)在工具箱中,我們可以像內(nèi)部控件一樣將它拖放到窗體中。 使用DBGrid控件顯示和瀏覽一個已有的數(shù)據(jù)庫的布驟如下: 1.在新窗體中添加一個Data控件,再設(shè)置其DataName和RecordSource屬性為想要顯示的數(shù)據(jù)庫和表。 2.在窗體中添加一個DBGrid控件,并設(shè)置

12、其DataSource屬性為剛創(chuàng)建的控件。 3.設(shè)置DBGrid控件的其他相關(guān)屬性。 4.運(yùn)行程序。10.5.2 DBGrid控件設(shè)計操作當(dāng)?shù)谝淮蝿?chuàng)建DBGrid控件時,它只有一行和一列,還包含一個空行(在運(yùn)行時用星號來表示),用來添加新記錄。在 “屬性頁”窗口中通過設(shè)置可以改變DBGrid控件的任何可視屬性?!皩傩皂摗贝翱陲@示整個DBGrid控件的屬性。要設(shè)置單個的Column對象的屬性,必須把DBGrid控件置為活動狀態(tài)。將鼠標(biāo)至于DBGrid控件區(qū)域,按下鼠標(biāo)右鍵,再從DBGrid控件的彈出菜單中選擇Edit(編輯)。使用彈出菜單可以插入或刪除列,或者剪切和粘貼列,或者追加新列,以此來調(diào)

13、整列的設(shè)置。在彈出菜單中選擇 “屬性”選項可得到 “屬性頁”對話框,里面有不同題目的選項卡。每一個DBGrid控件都有屬性頁,每個Column對象也有它自己的選項卡??梢允褂眠@些選項卡交互地設(shè)置作為一個整體的DBGrid控件或者單個選定的列屬性。General選項卡顯示出應(yīng)用于整個DBGrid控件的屬性并且在設(shè)計時可以確定取值。Columns選項卡顯示出單個列的屬性。如果選定多列,則Columns選項卡中最左邊的列先被選擇。設(shè)置Column對象屬性不影響整體的DBGrid控件的屬性。“顏色”選項卡允許選擇所有DBGrid的控件的顏色。Column對象的顏色不會受這些設(shè)置的影響?!白煮w”選項卡允

14、許選擇所有DBGrid控件和標(biāo)題的字體。Column對象的字體不會受這些設(shè)置的影響。如果一個單元格的文本太長,在單元各中顯示不下,此文本會自動地在同一單元格折到下一行。要顯示被折疊的文本,可以加寬單元格的Column對象的Width屬性或DBGrid控件本身的RowHeight屬性。10.5.3 GBRrid控件的運(yùn)行操作在運(yùn)行時,DBGrid控件從基本Recordset對象中顯示記錄。即使在DBGrid控件中有多行被選中,也總是只有一個當(dāng)前記錄。此當(dāng)前記錄相應(yīng)于Data控件的當(dāng)前記錄,可以用DBGrid控件的Bookmark屬性對它進(jìn)行設(shè)置或者檢索。Bookmark屬性提供對基本Record

15、set對象的當(dāng)前記錄的訪問。正如其他的數(shù)據(jù)綁定控件一樣,當(dāng)在DBGrid控件中改變一個記錄(或者一個記錄中的任何一個字段)時,如果它可以更新并且DBGrid控件的AllowUpdate屬性設(shè)置為True,則基本記錄集就會在移動到一個新記錄(行)時被更新。否則,就會出現(xiàn)一個可捕獲的錯誤。如果RecordSelectors屬性為True,則通過單擊該行的記錄選擇器圖標(biāo)可以選擇一整行。當(dāng)選擇一個單元格時,就會設(shè)置Col和Row屬性。該Column對象的Text和Value屬性引用當(dāng)前單元格的內(nèi)容.可用SelStartCol和SelEndCol屬性返回一個選定范圍的起始列和結(jié)束列10.6 ADO Da

16、ta 控件 ADO Data控件有時簡稱為ADO控件,它與VB固有的Data控件相似。使用ADO Data控件,可以使用Microsoft ActiveX Data Obiects(ADO)快速建立數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連續(xù)。10.6.1 關(guān)于ADO Data控件ADO Data控件可以實現(xiàn)以下功能:連接一個本地數(shù)據(jù)庫或遠(yuǎn)程數(shù)據(jù)庫。打開一個指定的數(shù)據(jù)庫表,或定義一個基本結(jié)構(gòu)化查詢語言(SQL)的查詢、存儲過程或該數(shù)據(jù)庫中的表的視圖的記錄集合。將數(shù)據(jù)字段的數(shù)值傳遞給數(shù)據(jù)綁定控件,可以在這些控件中顯示或更改這些數(shù)值。添加新的記錄,或根據(jù)更改顯示在綁定的控件中的數(shù)據(jù)來更新一個數(shù)據(jù)庫。 要使用

17、ADO Data控件,可單擊 “工程”菜單上的 “部件”選項,并在 “部件”對話框中選擇Microsoft ADO Data Control 6.0如 圖10.8所示。單擊 “確定”按鈕,就可以在VB中的控件工具箱內(nèi)看到它。通過數(shù)據(jù)控件可以直接對記錄集進(jìn)行訪問,移動記錄指針,不需要編寫代碼即可實現(xiàn)對數(shù)據(jù)庫的操作。10.6.2 ADO Data 控件的屬性下面介紹ADO Data控件的一些常用屬性。1.Align 屬性用來把數(shù)據(jù)控件擺放在窗體的特定為止,有5個可選的位置。VbAlignNone: 可以用鼠標(biāo)指針拖動控件到窗口的任何位置。VbAlignTop: 將控件放到窗口的頂端。VbAlign

18、Bottom:將控件放到窗口的底部。VbAlignLeft:將控件放到窗口的最左邊。VbAlignRight:將控件放到窗口的最右邊。2.BOFAction和EOFAction屬性當(dāng)移動數(shù)據(jù)庫記錄指針時,如果記錄指針移動到BOF或EOF位置后,再向前或向后移動記錄指針將發(fā)生錯誤。BOFAction和EOFAction屬性指定當(dāng)發(fā)生上述錯誤時,數(shù)據(jù)控件采取什么樣的操作。BOFAction屬性有兩個可選常量:AdDoMoveFirst:移動記錄指針到第一個記錄。AdStayBOF:移動記錄指針到紀(jì)錄的開始。記錄指針移動到紀(jì)錄的開始位置時將引發(fā)數(shù)據(jù)控件的Validata事件和Reposition事件

19、,這時可編寫程序代碼確定要執(zhí)行的操作。EOFAction屬性有3個可選常量:adDoMoveLast:移動記錄指針到最后一個記錄。adStayEOF:移動記錄指針到記錄的結(jié)尾,同樣可使用它所引發(fā)的事件來編寫程序代碼。adDoAddNew:當(dāng)記錄指針移動到文件尾部時,引發(fā)數(shù)據(jù)控件的Validate事件,然后自動執(zhí)行AddNew方法添加新記錄,并在新記錄上引發(fā)Reposition事件。3.ConnectionString屬性ConnectionString屬性用來建立到數(shù)據(jù)源的連接的信息。由于VB的ADO對象模型可以鏈接不同類型的數(shù)據(jù)庫,所以在使用ADO Data控件時也能夠通過Connectio

20、nString屬性來設(shè)置要鏈接的數(shù)據(jù)庫在設(shè)計時,可以首先將ConnectionString屬性設(shè)置為一個有效的連接字符串,也可以將ConnectionString屬性設(shè)置為定義連接的文件名該文件是由 “數(shù)據(jù)鏈接”對話框產(chǎn)生的設(shè)置ConnectionString屬性的步驟如下:(1)單擊ADO Data控件,并在 “屬性”窗口中單擊ConnectionString屬性的“”按鈕,會出現(xiàn)如圖10.9所示的 “屬性頁”對話框(2)如果已經(jīng)建立了一個Microsoft數(shù)據(jù)鏈接文件,選擇 “使用Data Link文件”單選按鈕,并單擊 “瀏覽”按鈕,以找到計算機(jī)上的文件。(3)如果使用DSN,則單擊 “

21、使用ODBC數(shù)據(jù)源名稱”連接,并從下拉列表框中選擇一個DSN,或單擊 “新建”創(chuàng)建一個。(4)如果想創(chuàng)建一個連接字符串,可選擇 “使用連接字符串”單選按鈕,再單擊 “生成”按鈕,然后如 圖10.10所示的 “數(shù)據(jù)鏈接屬性”對話框里創(chuàng)建一個連接。(5)在創(chuàng)建連接字符串后,單擊 “確定”按鈕。ConnectionString屬性將使用一個類似于下面一行的字符來填充:driver=SQL Server;server=bigsmile;uid=sa;pwd=pwd;database=pubs在運(yùn)行時,可以動態(tài)地設(shè)置ConnectionString更改數(shù)據(jù)庫。 4.RecordSource屬性Recor

22、dSource屬性設(shè)置要連接的表或者SQL查詢語句??梢栽?“屬性”窗口中將 “記錄源”屬性設(shè)置為一個SQL語句。例如:SELECT * FROM student WHERE sex=”男”5.CommandType屬性CommandType屬性用于指定RecordSource屬性的取值類型??芍苯釉?“屬性”窗口中CommandType屬性右邊的下拉列表中選擇需要的類型,其取值如下:AdCmdUnknown:默認(rèn)值。CommandText屬性中的命令類型未知.AdCmdTable:將CommandText作為其列全部由內(nèi)部生成的SQL查詢返回的表格的名稱進(jìn)行計算。adCmdText:將CommandText作為命令或存儲過程調(diào)用的文本化定義進(jìn)行計算。adCmdStoreProc:將CommandText作為存儲過程名進(jìn)行計算.6.UserName屬性UserName屬性指定用戶的名稱。當(dāng)數(shù)據(jù)庫受密碼保護(hù)時,需要指定該屬性。該屬性可以在ConnectionString中指定。如果同時提供一個ConnectionString屬性以及一個UserName屬性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論