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

下載本文檔

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

文檔簡(jiǎn)介

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

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

數(shù)據(jù)表中的一列稱為一個(gè)字段或域(Field),表中的一行數(shù)據(jù)稱為一條記錄(Record)。同一個(gè)表中字段名不允許重名表中同一字段的數(shù)據(jù)類型相同所有記錄具有同樣的字段13.1概述第4頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程5學(xué)生基本情況表

第5頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程613.1.2可視化數(shù)據(jù)管理器2.VB可訪問的數(shù)據(jù)庫

VB默認(rèn)的數(shù)據(jù)庫格式與Access格式相同,其默認(rèn)的數(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頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程7可視化數(shù)據(jù)管理器是VB提供的一個(gè)數(shù)據(jù)庫操作的實(shí)用工具,使用它可以方便地建立數(shù)據(jù)庫,并對(duì)數(shù)據(jù)表的記錄進(jìn)行增加、刪除、修改及查詢。VB默認(rèn)的數(shù)據(jù)庫是Access,擴(kuò)展名是.mdb。第7頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程81.啟動(dòng)可視化數(shù)據(jù)管理器圖在VBIDE中,打開“外接程序”菜單的“可視化數(shù)據(jù)管理器”命令,即打開可視化數(shù)據(jù)管理器的“VisData”窗口,如圖所示。第8頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程92.建立數(shù)據(jù)庫的表結(jié)構(gòu)建立數(shù)據(jù)庫→新建數(shù)據(jù)表→確定數(shù)據(jù)表的字段以及字段名、類型和長(zhǎng)度等信息【例】建立一個(gè)學(xué)生.mdb數(shù)據(jù)庫,在該庫中新建一個(gè)名為學(xué)生基本情況表的數(shù)據(jù)表。字段名學(xué)號(hào)姓名性別出生日期籍貫專業(yè)類型TextTextTextData/TimeTextText長(zhǎng)度78281020操作步驟:建立數(shù)據(jù)庫→新建數(shù)據(jù)表→建立表索引(可選)→生成表

第9頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程103.修改表結(jié)構(gòu)

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

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

Update學(xué)生基本情況表Set專業(yè)="計(jì)算機(jī)應(yīng)用"Where學(xué)="2001005"第15頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程16【例13-1】修改例11-1程序,用數(shù)據(jù)庫方法進(jìn)行用戶名和密碼驗(yàn)證。界面如圖所示,frmlogin窗體中添加了一個(gè)Data控件。13.2使用數(shù)據(jù)庫方式驗(yàn)證用戶名和密碼登錄程序第16頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程17建立管理員表,在管理員表中添加記錄。Data控件屬性設(shè)置屬性屬性值說明名稱Data1ConnectAccess連接數(shù)據(jù)庫類型DatabaseName學(xué)生.mdb數(shù)據(jù)庫名稱VisibleFalse不可見第17頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程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ù)庫中找到了對(duì)應(yīng)的用戶名和密碼frmLogin.Hidefrmmain.ShowElseEndIfEndSub第18頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程191.窗體上添加Data控件

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

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

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

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

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

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

第39頁,課件共47頁,創(chuàng)作于2023年2月VisualBasic程序設(shè)計(jì)教程40設(shè)置窗體上ADO對(duì)象的RecordSource屬性

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論