數(shù)據(jù)庫的基本應用_第1頁
數(shù)據(jù)庫的基本應用_第2頁
數(shù)據(jù)庫的基本應用_第3頁
數(shù)據(jù)庫的基本應用_第4頁
數(shù)據(jù)庫的基本應用_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫的基本應用第1頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程2第12章我們介紹了文件的基本操作,實際上使用數(shù)據(jù)庫來存儲和管理數(shù)據(jù)將比文件操作有更高的效率。VB具有了強大的數(shù)據(jù)庫操作功能,使程序開發(fā)人員可以輕松地開發(fā)出各種數(shù)據(jù)庫應用程序。第2頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程3本章介紹:數(shù)據(jù)庫的基本概念VB可視化數(shù)據(jù)庫管理器的用法VB操作數(shù)據(jù)庫的兩種工具DATA數(shù)據(jù)控件ADO數(shù)據(jù)對象顯示數(shù)據(jù)的基本方法。第3頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程413.1.1關(guān)系數(shù)據(jù)庫1.數(shù)據(jù)庫和數(shù)據(jù)表

數(shù)據(jù)庫(DateBse)是許多相關(guān)數(shù)據(jù)根據(jù)一定的原則構(gòu)成的數(shù)據(jù)集合。一個數(shù)據(jù)庫由一個或多個數(shù)據(jù)表(Table)組成。

數(shù)據(jù)表中的一列稱為一個字段或域(Field),表中的一行數(shù)據(jù)稱為一條記錄(Record)。同一個表中字段名不允許重名表中同一字段的數(shù)據(jù)類型相同所有記錄具有同樣的字段13.1概述第4頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程5學生基本情況表

第5頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程613.1.2可視化數(shù)據(jù)管理器2.VB可訪問的數(shù)據(jù)庫

VB默認的數(shù)據(jù)庫格式與Access格式相同,其默認的數(shù)據(jù)庫文件(.mdb)稱為內(nèi)部數(shù)據(jù)庫。除此之外,在VB中還可以訪問:外部數(shù)據(jù)庫,如dBASE、FoxPro、Paradox等ISAM(索引順序訪問方法)數(shù)據(jù)庫,以及Lotus123和Excel等電子表格數(shù)據(jù)列表ODBC(開放式數(shù)據(jù)互接)數(shù)據(jù)庫,如SQLServer等第6頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程7可視化數(shù)據(jù)管理器是VB提供的一個數(shù)據(jù)庫操作的實用工具,使用它可以方便地建立數(shù)據(jù)庫,并對數(shù)據(jù)表的記錄進行增加、刪除、修改及查詢。VB默認的數(shù)據(jù)庫是Access,擴展名是.mdb。第7頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程81.啟動可視化數(shù)據(jù)管理器圖在VBIDE中,打開“外接程序”菜單的“可視化數(shù)據(jù)管理器”命令,即打開可視化數(shù)據(jù)管理器的“VisData”窗口,如圖所示。第8頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程92.建立數(shù)據(jù)庫的表結(jié)構(gòu)建立數(shù)據(jù)庫→新建數(shù)據(jù)表→確定數(shù)據(jù)表的字段以及字段名、類型和長度等信息【例】建立一個學生.mdb數(shù)據(jù)庫,在該庫中新建一個名為學生基本情況表的數(shù)據(jù)表。字段名學號姓名性別出生日期籍貫專業(yè)類型TextTextTextData/TimeTextText長度78281020操作步驟:建立數(shù)據(jù)庫→新建數(shù)據(jù)表→建立表索引(可選)→生成表

第9頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程103.修改表結(jié)構(gòu)

“數(shù)據(jù)庫窗口”快捷菜單中“設(shè)計”命令

4.輸入、編輯、刪除記錄在“數(shù)據(jù)庫窗口”中雙擊數(shù)據(jù)表第10頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程1113.1.3使用SQL語句結(jié)構(gòu)化查詢語言(SQL)是一種操作關(guān)系數(shù)據(jù)庫的工業(yè)標準語言。SQL由一系列SQL語句組成。用戶可以在“SQL語句”窗口中輸入SQL語句,也可以在程序中使用SQL語句中來實現(xiàn)各種功能。下面介紹SQL的基本語句。第11頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程121.SELECT語句。SELECT語句可以從一個或多個表中選取特定的行和列。該語句基本格式如下:SELECT字段名列表From表名[Where查詢條件][OrderBy排序字段[ASC|DESC],…]【例】:ELECT學號,姓名,性別From學生基本情況表Where專業(yè)="計算機應用"SELECT*From學生基本情況表Where性別="女"OrderBy專業(yè)第12頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程132.Insert語句。Insert語句用于向數(shù)據(jù)表中追加一條記錄。語句格式如下:InsertInto表名(字段列表)Values(字段值表)例如InsertInto學生成績表(學號,英語,程序設(shè)計)Values("2001006",85,88)第13頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程143.Delete語句。Delete語句用于刪除指定條件的記錄。語句格式如下:DeleteFrom表名Where條件說明:默認Where子句,將刪除指定表中的所有記錄。例如DeleteFrom學生成績表Where學號="2001006"第14頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程154.Update語句。Update語句用于修改指定條件的記錄。語句格式如下:Update表名Set字段=表達式[,字段=表達式,……]Where條件例如,修改學生基本情況表中學號為“2001005”的專業(yè),可使用的Update語句如下:

Update學生基本情況表Set專業(yè)="計算機應用"Where學="2001005"第15頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程16【例13-1】修改例11-1程序,用數(shù)據(jù)庫方法進行用戶名和密碼驗證。界面如圖所示,frmlogin窗體中添加了一個Data控件。13.2使用數(shù)據(jù)庫方式驗證用戶名和密碼登錄程序第16頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程17建立管理員表,在管理員表中添加記錄。Data控件屬性設(shè)置屬性屬性值說明名稱Data1ConnectAccess連接數(shù)據(jù)庫類型DatabaseName學生.mdb數(shù)據(jù)庫名稱VisibleFalse不可見第17頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程18

PrivateSubcmdOK_Click()DimSqlAsstringSql="select*from管理員表where用戶名='"+UserName.Text+"'"Sql=Sql+"and密碼='"+Password.Text+"'"Data1.RecordSource=Sql'用Sql語句返回記錄集Data1.Refresh'刷新數(shù)據(jù)庫IfNotData1.Recordset.EOFAndnPass<3Then'在數(shù)據(jù)庫中找到了對應的用戶名和密碼frmLogin.Hidefrmmain.ShowElseEndIfEndSub第18頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程191.窗體上添加Data控件

2.三個重要屬性Connect:指定所連接的數(shù)據(jù)庫類型,默認為AccessDatabaseName:選擇要訪問的數(shù)據(jù)庫文件

RecordSource:確定要訪問的數(shù)據(jù)來源(數(shù)據(jù)表或SQL查詢語句)3.其它常用屬性RecordSetType:設(shè)置記錄集的類型ReadOnly:設(shè)置是否以只讀方式打開數(shù)據(jù)庫

13.3使用Data控件訪問數(shù)據(jù)庫第19頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程2013.3.1Data控件的常用屬性程序運行時,根據(jù)Data控件設(shè)置的屬性打開數(shù)據(jù)庫,返回一個記錄集對象(RecordSet),RecordSet對象提供和物理數(shù)據(jù)庫相應的一組邏輯記錄。Data控件對數(shù)據(jù)的操作主要是對RecordSet對象進行的,RecordSet對象也有自己的屬性和方法。第20頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程21屬性說明BOF記錄指針是否指向RecordSet對象第一條記錄之前EOF記錄指針是否指向RecordSet對象最后一條記錄之后RecordCount返回RecordSet對象的記錄的個數(shù)AbsolutePosition返回當前記錄的記錄號。取值范圍從0開始,到RecordCount-1。NoMatch用Find查詢方法在表中查詢滿足某一條件的記錄,如果未找到符合條件的記錄,則該屬性值為True,否則值為False。Fields記錄集中的字段,F(xiàn)ields(i)表示當前記錄的第i個字段,i從0開始;Fields("字段名")表示當前記錄的指定字段第21頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程2213.3.2Data控件和RecordSet對象的常用方法1.Data控件的常用方法(1)Refresh方法格式:Data控件名.Refresh在程序運行中,如改變了Data控件的Connect、DatabaseName、RecordSource或ReadOnly等屬性的值,則必須調(diào)用Refresh方法,使所作的更改生效。第22頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程23(2)UpdateRecord方法格式:Data控件名.UpdateRecord當用戶對數(shù)據(jù)庫作了修改后,調(diào)用此方法使所作的修改生效。UpdateRecord方法只保存那些來自被綁定的控件。第23頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程242.RecordSet對象的常用方法(1)記錄的定位方法格式:Data控件名.RecordSet.方法名功能:在記錄集上前后移動以改變當前記錄。其中方法有:MoveFirst:將記錄指針定位到第一條記錄。MoveLast:將記錄指針定位到最后一條記錄。

第24頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程25MoveNext:將記錄指針定位到下一條記錄。MovePrevious:將記錄指針定位到上一條記錄。(2)Update方法格式:Data控件名.RecordSet.Update功能:更新記錄內(nèi)容。通常在調(diào)用了Addnew方法后,調(diào)用該方法。第25頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程26(3)AddNew方法格式:Data控件名.RecordSet.AddNew功能:添加一條新的空白記錄。用戶可以給當前記錄的各字段賦值,然后調(diào)用Update方法對數(shù)據(jù)表更新,否則用AddNew方法添加的記錄無效。例如:Data1.RecordSet.AddNewData1.RecordSet.Fields(0)="王剛"……Data1.RecordSet.Update第26頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程27(4)Delete方法格式:Data控件名.RecordSet.Delete功能:刪除當前記錄。使用該方法刪除一條記錄后,需用MoveNext方法將記錄指針移到下一條記錄。第27頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程28(5)Edit方法格式:Data控件名.RecordSet.Edit功能:將當前記錄的內(nèi)容進行修改之前,使用Edit方法使記錄處于編輯狀態(tài)。與Addnew方法類似,必須再調(diào)用Update或UpdateRecord方法來更新,才使用所作的修改生效。第28頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程29(6)記錄的查詢方法格式:Data控件名.RecordSet.方法名功能:在記錄集中查詢滿足條件的記錄。如果找到滿足條件的記錄,則記錄指針將定位在找到的記錄上。如果找不到滿足條件的記錄,則記錄指針將定位記錄集的末尾。其中方法有:FindFirst:查詢滿足條件的第一條記錄。FindLast:查詢滿足條件的最后一條記錄。FindNext:從當前記錄開始往后查找滿足條件的第一條記錄。FindPrevious:從當前記錄開始往前查找滿足條件的第一條記錄。第29頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程30通??梢允褂肍ind方法查找某字段的值與一表達式的值相匹配的記錄,通過NoMatch屬性判斷是否找到。例如,在“學生基本情況表”中,查找第一條姓名為“王東”的記錄,可以用如下的語句:Data1.Recordset.FindFirst"姓名='王東'"IfData1.Recordset.NoMatchThenMsgBox"數(shù)據(jù)表中沒有符合條件的記錄!"EndIf第30頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程3113.3.3Data控件的常用事件1.Validate事件在一條不同的記錄成為當前記錄之前,Update方法之前,或者Delete、Unload或Close操作之前會引發(fā)該事件。即將記錄指針從X記錄移到Y(jié)記錄時,引發(fā)該事件。引發(fā)該事件時,當前記錄仍為X記錄。Validate事件過程的格式為:PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)第31頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程32其中,Action參數(shù)用來標識引發(fā)該事件的操作。借用該參數(shù)可以根據(jù)不同的操作作不同的處理。Save參數(shù)是一個布爾表達式,用來表示是否保存已修改的數(shù)據(jù)。如果該事件退出時save為True,則激活Edit和UpdateRecord方法。2.Reposition事件在一條記錄成為當前記錄之后引發(fā)該事件。即將記錄指針從X記錄移到Y(jié)記錄時,引發(fā)該事件。引發(fā)此事件時,當前記錄是Y記錄。第32頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程33綁定:通過對普通控件的屬性設(shè)置,使得這些控件與Data控件記錄集中的字段建立鏈接關(guān)系。1.Data的綁定控件具有DataSource和DataField屬性的控件可以和Data控件進行綁定,如標簽、文本框等。2.綁定控件的屬性設(shè)置DataSource:選擇所綁定的Data控件

DataField:確定需顯示或更新的數(shù)據(jù)表字段,即Data控件連接的數(shù)據(jù)表字段

13.4數(shù)據(jù)綁定控件介紹第33頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程34【例13-2】設(shè)計一個程序,管理“學生.mdb”數(shù)據(jù)庫中“學生基本情況表”的記錄的內(nèi)容,此數(shù)據(jù)表中的記錄如表13.1所示。程序運行的界面如圖所示。第34頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程35分析:程序運行時要顯示如圖的界面,相應文本框需要分別綁定到數(shù)據(jù)控件,同時由于文本框控件已綁定,文本框中任何數(shù)據(jù)的修改都會直接改變數(shù)據(jù)庫中的數(shù)據(jù),因此需要對已更改的數(shù)據(jù)作出判斷,這一過程可以通過Data控件的Validate事件完成。另外,通過Data控件的Reposition事件設(shè)置它的Caption屬性。數(shù)據(jù)控件Data1和文本框的屬性設(shè)置如表13.9所示。第35頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程36對象屬性屬性值Data1ConnectAccessDatabaseName學生數(shù)據(jù)庫所在路徑及名稱(學生.mdb)RecordSource學生基本情況表Text1~Text6DataSourceData1DataField分別為:學號、專業(yè)、姓名、性別和籍貫第36頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程37ADO:ActiveXDataObjects(ActiveX數(shù)據(jù)對象)創(chuàng)建ADO控件(1)“工程”→部件”(2)點擊工具箱中,在窗體上畫出ADO對象13.5使用ADO控件訪問數(shù)據(jù)庫第37頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程3813.5.2ADO控件的屬性、方法和事件設(shè)置窗體上ADO對象的ConnectionString屬性第38頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程39

第39頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程40設(shè)置窗體上ADO對象的RecordSource屬性

選擇數(shù)據(jù)表為記錄源由SQL查詢來確定記錄源第40頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程41ADO控件的方法和事件ADO控件與Data控件類似,對數(shù)據(jù)的操作主要通過Recordset對象的方法來實現(xiàn)。ADO控件提供可響應的事件較多,常用的是WillMove事件和MoveComplete事件。當用某種方法改變紀錄集的指針使其從一條記錄移到另一條記錄,產(chǎn)生WillMove事件。當一條記錄成為當前記錄后,產(chǎn)生MoveComplete事件,它在WillMove事件之后發(fā)生。第41頁,共47頁,2023年,2月20日,星期六VisualBasic程序設(shè)計教程42DataGrid控件與ADO控件綁定后,可一次顯示多條記錄,并允許對顯示的記錄進行編輯修改,并可將修改的結(jié)果自動更新到數(shù)據(jù)庫中。使用DataGrid控件:(1)“工程”→部件”(2)點擊工具箱中(3)在窗體上畫出DataGrid對象13.6使用DataGrid瀏覽數(shù)據(jù)庫第42頁,共47頁,2023年,2月20

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論