版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),1 應(yīng)用背景與需求說明在單機(jī)上實(shí)現(xiàn)一個(gè)教學(xué)管理系統(tǒng)的例子,并且可以很容易地把它移植到C/S結(jié)構(gòu)中,只涉及教學(xué)管理中的對(duì)學(xué)生、課程和教師的管理部分:項(xiàng)目的具體要求是:.運(yùn)行環(huán)境是Windows 95/98操作系統(tǒng),數(shù)據(jù)庫的前端開發(fā)環(huán)境是VB 5.0。一門課程可由多名教師來講授。一個(gè)教師可講授多門課程。一個(gè)學(xué)生可以選修多門課程。,需產(chǎn)生的報(bào)表有.每學(xué)期開學(xué)時(shí)要生成學(xué)生修課情況表,內(nèi)容包括學(xué)號(hào)、
2、姓名、課程名、修課類別,其中修課類別分為必修、選修、重修。.每學(xué)期結(jié)束時(shí)要生成學(xué)生修課成績表,內(nèi)容包括學(xué)號(hào)、姓名、課程名、修課類別、平時(shí)成績、卷面成績、總評(píng)成績。生成教師授課服務(wù)表,內(nèi)容包括教師號(hào)、教師名、課程名、授課類別、學(xué)時(shí)數(shù)、班數(shù),授課類別分為主講、輔導(dǎo)、帶實(shí)驗(yàn)。安全性要求本門課程的主講教師才具有對(duì)其所講授課程的成績的修改權(quán),教學(xué)秘書和系主任才有修改教師授課服務(wù)表中的內(nèi)容的權(quán)力。其它人只有查詢有關(guān)信息的權(quán)力。,2 數(shù)據(jù)庫
3、設(shè)計(jì),2.1 概念設(shè)計(jì)核心活動(dòng):是系統(tǒng)中的其它活動(dòng)都是圍繞這個(gè)活動(dòng)展開的或與此活動(dòng)是密切相關(guān)的活動(dòng)確定系統(tǒng)的核心活動(dòng):對(duì)現(xiàn)實(shí)系統(tǒng)分析的關(guān)鍵該教學(xué)管理系統(tǒng)中,核心活動(dòng)就是授課,學(xué)生與課程之間是通過授課發(fā)生聯(lián)系的,教師與課程之間是通過教師授課發(fā)生聯(lián)系的。系統(tǒng)所包含的實(shí)體: 課程:元素為由一個(gè)主講教師負(fù)責(zé)且教學(xué)內(nèi)容相同的教學(xué)活動(dòng) 單位,用課程號(hào)來標(biāo)識(shí)此實(shí)體。 學(xué)生:元素為一個(gè)學(xué)生,由學(xué)號(hào)
4、來標(biāo)識(shí)。 教師:元素為一個(gè)教師,由教師號(hào)來標(biāo)識(shí)。初步E-R圖:,課程號(hào)、課程名、講授學(xué)期、學(xué)時(shí)數(shù),學(xué)號(hào)、姓名、系、專業(yè)、班級(jí),教師號(hào)、教師名、系、教研室,2 數(shù)據(jù)庫設(shè)計(jì),2.2 設(shè)計(jì)關(guān)系模式設(shè)計(jì)基本關(guān)系模式主要就是從E-R圖出發(fā),將其直接轉(zhuǎn)換為關(guān)系模式。轉(zhuǎn)換的規(guī)則為: 1.將每個(gè)實(shí)體都轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的主碼就是關(guān)系的主碼。 2.將每個(gè)聯(lián)系也轉(zhuǎn)換為一個(gè)關(guān)系模式,該關(guān)系
5、模式的屬性由與該聯(lián)系相連的各個(gè)實(shí)體的主碼及該聯(lián)系的屬性組成,該聯(lián)系的主碼分三種情況:. 若聯(lián)系是1:1的,則每個(gè)實(shí)體的主碼即是該聯(lián)系的候選碼。. 若聯(lián)系是1:n的,則此聯(lián)系的主碼是n端實(shí)體的主碼。. 若聯(lián)系是m:n的,則此聯(lián)系的主碼是各個(gè)實(shí)體的主碼的并。此E-R圖的關(guān)系模式為:(1)課程(課程號(hào),課程名,講授學(xué)期,學(xué)時(shí)數(shù)),主碼為課程號(hào)。(2)學(xué)生(學(xué)號(hào)、姓名、系、專業(yè)、班),主碼為學(xué)號(hào)。(3)教師(教師號(hào)、教師
6、名、系、教研室),主碼為教師號(hào)。(4)修課(學(xué)號(hào),課程號(hào),修課類別,平時(shí)成績,卷面成績,總評(píng)成績),主碼為(學(xué)號(hào),課程號(hào))。 (5)授課(課程號(hào),教師號(hào),授課類別,班數(shù)),主碼為(課程號(hào),教師號(hào))。,2.2 設(shè)計(jì)關(guān)系模式確定表中各屬性的詳細(xì)信息,(1)課程表課程號(hào):字符串型,10字節(jié),主碼課程名:字符串型,20字節(jié),非空講授學(xué)期:字符串型,2字節(jié),非空學(xué)時(shí)數(shù):整型,非空(2) 學(xué)生表學(xué)號(hào):字符串型,10字節(jié),主碼
7、姓名:字符串型,20字節(jié),非空系:字符串型,20字節(jié),非空專業(yè):字符串型,20字節(jié),非空班:字符串型,10字節(jié),非空(3) 教師表教師號(hào):字符串型,10字節(jié),主碼教師名:字符串型,20字節(jié),非空 系:字符串型,20字節(jié)教研室:字符串型,10字節(jié),(4) 修課表學(xué)號(hào):字符串型,10字節(jié),主碼,學(xué)生表的外碼課程號(hào):字符串型,10字節(jié),主碼,課程表的外碼修課類別:字符串型,4字節(jié),非空平時(shí)成績:浮點(diǎn)型,大
8、于等于0,小于等于100卷面成績:浮點(diǎn)型,大于等于0,小于等于100總評(píng)成績:浮點(diǎn)型,大于等于0,小于等于100 (5) 授課表課程號(hào):字符串型,10字節(jié),主碼,課程表的外碼教師號(hào):字符串型,10字節(jié),主碼,教師表的外碼授課類別:字符串型,10字節(jié)班數(shù):浮點(diǎn)型,大于0。假設(shè)選修課有半個(gè)班的情況,因此取浮點(diǎn)型。,2.3 確定數(shù)據(jù)庫應(yīng)用的功能,最常用的功能就是對(duì)數(shù)據(jù)的增、刪、改、查及生成報(bào)表1.數(shù)據(jù)錄入(增加)2.
9、數(shù)據(jù)刪除3.數(shù)據(jù)修改4.數(shù)據(jù)查詢5.生成報(bào)表本例三張報(bào)表:(1) 學(xué)生修課表(學(xué)號(hào),姓名,課程名,修課類別)(2) 學(xué)生成績表(學(xué)號(hào),姓名,課程名,修課類別,平時(shí)成績,卷面成績,總評(píng)成績)(3) 教師授課服務(wù)表(教師號(hào),教師名,課程名,授課類別,學(xué)時(shí)數(shù),班數(shù))創(chuàng)建視圖的SQL語句可描述為:CREATE VIEW 學(xué)生修課表(學(xué)號(hào),姓名,課程名,修課類別)ASSELECT 學(xué)生.學(xué)號(hào),學(xué)生.姓名,課程.課
10、程名,修課.修課類別 FROM 學(xué)生,課程,修課 WHERE 學(xué)生.學(xué)號(hào) = 修課.學(xué)號(hào) AND 課程.課程號(hào) = 修課.課程號(hào),包括對(duì)張表的數(shù)據(jù)錄入,有條件刪除,有權(quán)限限制,有刪除確認(rèn),有條件查詢后修改,有權(quán)限限制,修改后保存,根據(jù)用戶提出的條件查詢,所有用戶都有查詢權(quán)限,用數(shù)據(jù)庫開發(fā)工具生成報(bào)表,對(duì)“學(xué)生成績表”和“教師授課服務(wù)表”的處理與此類似,3 數(shù)據(jù)庫開發(fā)環(huán)境,在C/S環(huán)境下實(shí)現(xiàn)時(shí)應(yīng)注意數(shù)據(jù)的分布將數(shù)據(jù)全部放在服務(wù)器上--
11、中央數(shù)據(jù)庫 將數(shù)據(jù)全部集中管理,數(shù)據(jù)只有一份,比如實(shí)時(shí)采集的數(shù)據(jù)一般都應(yīng)該放在服務(wù)器端。將一部分?jǐn)?shù)據(jù)放在服務(wù)器上,另一部分?jǐn)?shù)據(jù)放在客戶機(jī)上--地方數(shù)據(jù)庫 將數(shù)據(jù)分散管理,只將重要的、所有部門共享的數(shù)據(jù)放在中央數(shù)據(jù)庫中,將各個(gè)部門自己需要的數(shù)據(jù)放在地方數(shù)據(jù)庫中。例:本教學(xué)管理系統(tǒng)中,將所設(shè)計(jì)的五張表放在服務(wù)器,便于全校統(tǒng)一管理,各部門共享,同時(shí)各部門有自己的地方數(shù)據(jù)庫。 如“修課表”,中央和地方各有一個(gè),且兩者
12、結(jié)構(gòu)一致,當(dāng)?shù)胤秸n程數(shù)據(jù)庫修改時(shí),能及時(shí)修改中央數(shù)據(jù)庫,在保持?jǐn)?shù)據(jù)的一致性。將數(shù)據(jù)分為中央數(shù)據(jù)庫和地方數(shù)據(jù)庫的好處:減少對(duì)中央數(shù)據(jù)庫的操作次數(shù),先在地方數(shù)據(jù)庫中錄入數(shù)據(jù)有關(guān)數(shù)據(jù)(比如本系的修課情況表),當(dāng)確認(rèn)準(zhǔn)確無誤之后再送到中央數(shù)據(jù)庫中。數(shù)據(jù)一旦被送到中央數(shù)據(jù)庫就不能被隨便地修改和刪除,這也增加了中央數(shù)據(jù)庫數(shù)據(jù)的安全性和可靠性。,數(shù)據(jù)過于龐雜,易于各部門開發(fā)自己專用的地方數(shù)據(jù)庫,,分類,3.1 Visual Basic中的數(shù)據(jù)訪問
13、,Jet :Visual Basic 提供的數(shù)據(jù)庫引擎Jet數(shù)據(jù)庫引擎接口的方法:Data控件(Data Control)和數(shù)據(jù)訪問對(duì)象(DAO)VB中數(shù)據(jù)庫編程的內(nèi)容:創(chuàng)建數(shù)據(jù)訪問對(duì)象,這些數(shù)據(jù)訪問對(duì)象對(duì)應(yīng)于被訪問的物理數(shù)據(jù)庫的不同部分,如:用這些對(duì)象的屬性和方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。VB可以識(shí)別三類數(shù)據(jù)庫:1.Visual Basic數(shù)據(jù)庫:2.外部數(shù)據(jù)庫:3.ODBC數(shù)據(jù)庫:符合ODBC標(biāo)準(zhǔn)的客戶/服務(wù)器數(shù)據(jù)庫,提供
14、有限的不需編程就能訪問現(xiàn)存數(shù)據(jù)庫的功能,DAO模型則是全面控制數(shù)據(jù)庫的完整編程接口,Database(數(shù)據(jù)庫)、TableDef(表)、Field(字段)Index(索引)對(duì)象。,數(shù)據(jù)庫文件使用與Microsoft Access相同的格式,dBase III或IVFoxPro 2.0和2.5Paradox版本3.x和4.xMicrosoft ExcelLotus 1-2-3,Microsoft SQL Server,3.2
15、Visual Basic 數(shù)據(jù)庫體系結(jié)構(gòu),Jet引擎的作用:處理存儲(chǔ)、檢索、更新數(shù)據(jù)的結(jié)構(gòu),并提供了功能強(qiáng)大的、面向?qū)ο蟮腄AO編程接口VB數(shù)據(jù)庫應(yīng)用程序的組成,實(shí)現(xiàn)“透明”訪問(讀取、寫入或修改數(shù)據(jù)庫,處理所有內(nèi)部事物),顯示數(shù)據(jù)并允許用戶查看或更新數(shù)據(jù)窗體,VB中添加或刪除記錄,執(zhí)行查詢等,Jet包含在一組DLL文件中,被鏈接到VB程序,把應(yīng)用程序譯成.mdb文件或其它數(shù)據(jù)庫的物理操作。,包含數(shù)據(jù)表的一個(gè)或多個(gè)文件,2.數(shù)據(jù)庫
16、應(yīng)用程序的存放 遠(yuǎn)程數(shù)據(jù)庫 客戶機(jī)/服務(wù)器數(shù)據(jù)庫,3.2 Visual Basic 數(shù)據(jù)庫體系結(jié)構(gòu),客戶/服務(wù)器與遠(yuǎn)程數(shù)據(jù)庫數(shù)據(jù)庫的存放,,可同時(shí)對(duì)多個(gè)客戶機(jī)的應(yīng)用程序提供服務(wù),操作數(shù)據(jù)庫并對(duì)每個(gè)應(yīng)用程序返回所請(qǐng)求的記錄,4 創(chuàng)建數(shù)據(jù)庫,VB中創(chuàng)建數(shù)據(jù)庫途徑:1、可視化數(shù)據(jù)管理器2、DAO3、Microsoft Access4 、外部數(shù)據(jù)庫應(yīng)用程序,不編程即可創(chuàng)建Jet引擎,使用VB的DAO部件可以通過編程
17、的方法創(chuàng)建數(shù)據(jù)庫,用 Access創(chuàng)建的數(shù)據(jù)庫和直接在VB中創(chuàng)建的數(shù)據(jù)庫一樣,兩者用的數(shù)據(jù)庫引擎與格式一樣,VB可通過ISAM或ODBC驅(qū)動(dòng)程序來訪問FoxPro、dBASE或ODBC客戶/服務(wù)器應(yīng)用程序,4.1 可視化數(shù)據(jù)管理器,數(shù)據(jù)管理器(Data Manager)可以用于快速地建立數(shù)據(jù)庫結(jié)構(gòu)及數(shù)據(jù)庫內(nèi)容。VB的數(shù)據(jù)管理器是一個(gè)獨(dú)立的可單獨(dú)運(yùn)行的應(yīng)用程序――Visdata.exe。隨安裝過程放置在VB目錄中,可以單獨(dú)運(yùn)行,也可以在
18、VB開發(fā)環(huán)境中啟動(dòng)它。凡是VB有關(guān)數(shù)據(jù)庫的操作,比如數(shù)據(jù)庫結(jié)構(gòu)的建立、記錄的添加及修改以及使用ODBC連接到服務(wù)器端的數(shù)據(jù)庫,如SQL Server,都可以利用此工具來完成。啟動(dòng)數(shù)據(jù)管理器的方法:打開VB? 外接程序?可視化數(shù)據(jù)管理器 VisData 窗體工具欄提供了三組9個(gè)按鈕在下圖中介紹以VB提供的Biblio.mdb數(shù)據(jù)庫為實(shí)例介紹。 文件?打開數(shù)據(jù)庫?VB目錄下的Biblio.mdb ?確定,所進(jìn)行的
19、增、刪、改、查等操作直接更新數(shù)據(jù)庫中的數(shù)據(jù),在內(nèi)存中操作,不直接影響數(shù)據(jù)庫,只能讀,不能改,進(jìn)行事物處理,圖1 數(shù)據(jù)管理器,1、建立數(shù)據(jù)庫,建立數(shù)據(jù)結(jié)構(gòu)文件?新建?Microsoft Access ?版本7.0 ?輸入存儲(chǔ)的文件名?如圖1添加數(shù)據(jù)表鼠標(biāo)右鍵?新表?出現(xiàn)“結(jié)構(gòu)表” 表名稱:課程單擊“添加字段” ?輸入字段內(nèi)容名稱:課程名、授課學(xué)期、學(xué)時(shí)數(shù)等類型:text或integer大?。翰欢ń⑺饕?
20、,2.錄入數(shù)據(jù),數(shù)據(jù)庫窗口?在窗體上使用DBGrid控件?課程?鼠標(biāo)右鍵?打開?顯示下圖?錄入數(shù)據(jù),3.建立查詢,對(duì)已有數(shù)據(jù)的數(shù)據(jù)表進(jìn)行有條件或無條件查詢 VisData窗口?實(shí)用程序?查詢生成器(右鍵?新查詢)?輸入查詢條件,4.2 數(shù)據(jù)訪問對(duì)象,DAO的引入:數(shù)據(jù)管理器:只適合于做比較簡單的應(yīng)用,如果要實(shí)現(xiàn)復(fù)雜的應(yīng)用系統(tǒng),使用VB提供的數(shù)據(jù)訪問對(duì)象(DAO),DAO是通過編程來直接控制JET數(shù)據(jù)庫引擎,來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)庫應(yīng)
21、用系統(tǒng)。DAO的分層結(jié)構(gòu):數(shù)據(jù)訪問對(duì)象是以分層形式組織而成的,大多數(shù)對(duì)象成員都是一個(gè)對(duì)象類別的集合,而這個(gè)集合又隸屬于上一層的另一個(gè)對(duì)象類別,大多數(shù)數(shù)據(jù)訪問對(duì)象被描述為“對(duì)象和集合”。分層結(jié)構(gòu)的頂部是Microsoft Jet數(shù)據(jù)庫引擎本身――DBEngine對(duì)象。它是唯一不被其它對(duì)象所包含的數(shù)據(jù)訪問對(duì)象對(duì)象分層結(jié)構(gòu)通過“包含”一種其它對(duì)象的“集合”實(shí)現(xiàn),集合對(duì)象用于包含其它對(duì)象,集合中的對(duì)象都是同一類型的。 DAO分層結(jié)構(gòu)中
22、的元素實(shí)際上是類,而不是對(duì)象,它們是對(duì)象的“藍(lán)圖”。類與數(shù)據(jù)類型類似,它只描述所引用的對(duì)象的“類型”。例如,聲明 Dim MyWs As Workspace,MyWs是一個(gè)代表Workspace類型的對(duì)象的變量,DAO分層結(jié)構(gòu)圖,DAO創(chuàng)建數(shù)據(jù)庫的步驟:創(chuàng)建新數(shù)據(jù)庫的第一步是創(chuàng)建Database對(duì)象本身,然后添加與設(shè)計(jì)相一致的TableDef和Field對(duì)象來定義其結(jié)構(gòu),方法:1、使用Dim語句給數(shù)據(jù)庫中的每一個(gè)對(duì)象創(chuàng)
23、建對(duì)象變量。除了構(gòu)造構(gòu)成環(huán)境的DBEnigne和缺省的Workspace對(duì)象外,還需要:一個(gè)Database對(duì)象·每個(gè)表需要一個(gè)TableDef對(duì)象·每個(gè)表中的每個(gè)字段需要一個(gè)Field對(duì)象·每個(gè)表中的每個(gè)索引需要一個(gè)Index對(duì)象如:用如下代碼創(chuàng)建一個(gè)數(shù)據(jù)庫對(duì)象變量:(數(shù)據(jù)庫名: JXGL.mdb )Dim MyDb As Database, MyWs As WorkspaceDim St
24、uTd As TableDef, TeaTd As TableDef, CosTd As TableDef, XKTd As TableDef, SKTd As TableDef Dim StuFlds(5) As Field, TeaFlds(4) As Field, CosFlds(4) As Field,_ XKFlds(5) As Field, SKFlds(5) As FieldDim StuIdx As
25、 Index, TeaIdx As Index, CosIdx As Index, XKIdx(2) As Index, SKIdx(2) As Index,4.2 數(shù)據(jù)訪問對(duì)象,4.2 數(shù)據(jù)訪問對(duì)象 DAO創(chuàng)建數(shù)據(jù)庫的步驟,2、使用Workspace對(duì)象的CreateDatabase方法創(chuàng)建新的數(shù)據(jù)庫。Set MyWs = DBEngine.Eorkspaces(0)Set MyDb = MyWs.CreateDat
26、abase(“C:\VB\JXGL.mdb”,dbLangGeneral,dbVersion03)3、使用Database對(duì)象的CreateTableDef方法為數(shù)據(jù)庫中的所有表創(chuàng)建新的TableDef對(duì)象。如本例中:Set StuTd = MyDB.CreateTableDef(“學(xué)生”)Set TeaTd = MyDB.CreateTableDef(“教師”)Set CosTd = MyDB.CreateTableDef(
27、“課程”)Set XKTd = MyDB.CreateTableDef(“修課”)Set SKTd = MyDB.CreateTableDef(“授課”),4、使用TableDef對(duì)象的CreateField方法,為表中每個(gè)字段創(chuàng)建Field對(duì)象,然后設(shè)置每個(gè)字段的屬性來定義字段的長度、數(shù)據(jù)類型和其它所需的屬性。例如,下面的代碼用來創(chuàng)建JXGL.mdb數(shù)據(jù)庫中的課程表:Set CosFlds(0) = CosTd.CreateFi
28、eld(“課程號(hào)”,dbText)Set CosFlds(0).Size = 10Set CosFlds(1) = CosTd.CreateField(“課程名”,dbText)Set CosFlds(1).Size = 20Set CosFlds(2) = CosTd.CreateField(“授課學(xué)期”,dbInteger)Set CosFlds(3) = CosTd.CreateField(“學(xué)時(shí)數(shù)”,dbInteger
29、)5、用Append方法把每個(gè)字段添加到表中,并把每個(gè)表添加到數(shù)據(jù)庫中。例如:CosTd.Fields.Append CosFlds(0)CosTd.Fields.Append CosFlds(1)CosTd.Fields.Append CosFlds(2)CosTd.Fields.Append CosFlds(3)MyDb.TableDefs.Append CosTd,4.2 數(shù)據(jù)訪問對(duì)象 DAO創(chuàng)建數(shù)據(jù)庫的步驟,用數(shù)
30、據(jù)庫表添加索引的步驟:1.用TableDef對(duì)象中的CreateIndex方法給每個(gè)表創(chuàng)建索引,并設(shè)置其屬性:Set CosIdx = CosTd.CreateIndex(“課程號(hào)”)CosIdx.Primary = True’是主碼CosIdx.Unique = Ture’值不重2.用Index對(duì)象的Createfield方法給每個(gè)索引對(duì)象創(chuàng)建字段:Set NewFld = CosIdx.CreateField(“
31、課程號(hào)”)3.把字段追加到Index中,然后把Index追究到TableDef對(duì)象中:CosIdx.Fields.Append NewFldCosTd.Indexes.Append AuIdx 注意:用Index對(duì)象中的CreateField方法創(chuàng)建的字段不添加到TableDef中,而是添加到Index對(duì)象中,并給Name屬性賦值,該屬性與被索引的TableDef字段中的Name屬性相同。不用指定Index對(duì)象中字段的Ty
32、pe(類型)和Size(大小)屬性。,4.3 添加索引,建好數(shù)據(jù)庫之后,還要指定索引及各表間的關(guān)系:用CreatIndex方法可以給TableDef定義的表添加索引,用Index對(duì)象的CreatField方法創(chuàng)建新的Field指定被索引的字段,4.4 添加關(guān)系和引用完整性,Jet數(shù)據(jù)庫引擎提供了Relation對(duì)象來強(qiáng)制引用的完整性,以防止出現(xiàn)不一致的記錄。給數(shù)據(jù)庫添加關(guān)系的步驟:1.用Database對(duì)象的CreateRelat
33、ion方法創(chuàng)建Relation對(duì)象,然后設(shè)置其table和ForeignTable屬性:Dim Stu_XK As RelationSet Stu_XK = MyDb.CreateRelation(“Student_XK”)Stu_XK.Table = “學(xué)生”Stu_XK.ForeignTable = “修課”2.用Relation對(duì)象中的CreateField方法,創(chuàng)建一個(gè)字段,用來定義關(guān)系中的主碼和外碼字段。Dim T
34、empField As FieldSet TempField = Stu_XK.CreateField(“學(xué)號(hào)”)TempField.ForeignName = “學(xué)號(hào)”3.用Append方法把Field對(duì)象添加到Relation中,然后把Relation添加到Database中。Stu_XK.Fields.Append TempFieldMyDb.Relations.Append Stu_XK,在添加和刪除記錄時(shí)必須保持引用
35、的完整性以確保數(shù)據(jù)庫中的關(guān)系有用,5 創(chuàng)建數(shù)據(jù)庫應(yīng)用程序5.1 數(shù)據(jù)控件(Data Control),數(shù)據(jù)控件是連接數(shù)據(jù)庫中的信息和用戶用來顯示信息的依附控件,是簡單數(shù)據(jù)庫應(yīng)用程序的核心。依附控件是為處理創(chuàng)建數(shù)據(jù)庫應(yīng)用程序的數(shù)據(jù)控件而建立的控件。數(shù)據(jù)控件用于綁定數(shù)據(jù)庫和數(shù)據(jù)庫中的某個(gè)表,依附控件用于綁定表中的某個(gè)列。數(shù)據(jù)控件是VB工具箱中的一個(gè)可用控件,設(shè)置數(shù)據(jù)控件的步驟:打開VB?選擇Data控件?在窗體中畫出Data控件?設(shè)
36、定Data控件的DatabaseName和RecordSource屬性。,用于綁定某個(gè)數(shù)據(jù)庫,用于綁定數(shù)據(jù)庫中的某個(gè)表,文本框、標(biāo)簽、校驗(yàn)框、圖片框、圖像等,5 創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 5.2 創(chuàng)建一個(gè)簡單的應(yīng)用程序,例:創(chuàng)建一個(gè)課程表應(yīng)用程序:1、建立窗體:打開VB ?添加Data控件?設(shè)置控件的屬性?添加依附控件?設(shè)置依附控件屬性。,Name:Course Caption:課程DatabaseName: JXGL.m
37、dbRecordSource:課程,,數(shù)據(jù)訪問窗體設(shè)置的DataField和Caption,VB設(shè)置屏幕,2.瀏覽數(shù)據(jù)庫中數(shù)據(jù):單擊運(yùn)行按鈕,結(jié)果如下:,5 創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 5.2 創(chuàng)建一個(gè)簡單的應(yīng)用程序,第一個(gè)記錄,最后一個(gè)記錄,下一條記錄,上一條記錄,3.數(shù)據(jù)控件的其它功能:添加記錄、刪除記錄等,5 創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 5.2 創(chuàng)建一個(gè)簡單的應(yīng)用程序,Private Sub 添加_Click()Data1.Re
38、cordset.AddNewEnd Sub,Private Sub 刪除_Click()Data1.Recordset.DeleteIf Not Data1.Recordset.EOF ThenData1.Recordset.MoveNext Else Data1.Recordset.MoveLast End IfEnd Sub,使用數(shù)據(jù)窗體模板(Data Form Wizard――DFW)創(chuàng)建數(shù)據(jù)窗, DFW是
39、與VB一同發(fā)行的一個(gè)插件,用此插件用戶只需選擇一個(gè)數(shù)據(jù)庫和數(shù)據(jù)表,DFW即自動(dòng)為用戶生成具有對(duì)此數(shù)據(jù)表進(jìn)行增、刪、改、瀏覽功能的窗體。用戶可在此基礎(chǔ)上進(jìn)行修改,使之符合自己的需要。即:DFW是一種快速原型開發(fā)或簡單應(yīng)用程序的很好的工具。使用DFW創(chuàng)建數(shù)據(jù)窗體的大致步驟為: VB窗口?外接程序?數(shù)據(jù)庫窗體向?qū)?Access ?數(shù)據(jù)庫名(JXGL.mdb) ?根據(jù)提示(下一步)完成此操作,顯示結(jié)果如下:,5 創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 5.3
40、 創(chuàng)建數(shù)據(jù)窗體,DFW生成的課程數(shù)據(jù)窗體,小 結(jié),在數(shù)據(jù)庫知識(shí)的基礎(chǔ)上,根據(jù)數(shù)據(jù)庫應(yīng)用開發(fā)的步驟,實(shí)際地講述了一個(gè)具有實(shí)際背景的數(shù)據(jù)庫應(yīng)用的開發(fā)。目前VB的使用范圍越來越廣泛,由于它簡單易學(xué),特別適合于普通應(yīng)用的開發(fā)。VB開發(fā)工具具有開發(fā)周期短、應(yīng)用范圍廣(從界面制作到數(shù)據(jù)庫開發(fā),包括個(gè)人機(jī)的和客戶/服務(wù)器結(jié)構(gòu)的以及遠(yuǎn)程數(shù)據(jù)庫的應(yīng)用,到Internet的開發(fā),到多媒體應(yīng)用的開發(fā)無一不行)等特性,因此得到廣大應(yīng)用開發(fā)人員的喜愛。
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 一個(gè)Web數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)數(shù)據(jù)庫老化測試工具的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)數(shù)據(jù)庫功能性自動(dòng)化測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 設(shè)計(jì)與實(shí)現(xiàn)一個(gè)呼叫中心數(shù)據(jù)庫系統(tǒng)
- 設(shè)計(jì)與實(shí)現(xiàn)一個(gè)呼叫中心數(shù)據(jù)庫系統(tǒng) .docx
- 一個(gè)演繹對(duì)象數(shù)據(jù)庫語言的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)印刷系統(tǒng)數(shù)據(jù)庫優(yōu)化策略的設(shè)計(jì)及實(shí)現(xiàn).pdf
- 一個(gè)典型的數(shù)據(jù)庫設(shè)計(jì)實(shí)例
- 一個(gè)報(bào)業(yè)圖文數(shù)據(jù)庫光盤檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)測試數(shù)據(jù)庫生成工具的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)數(shù)據(jù)清理工具的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 建立一個(gè)簡單的數(shù)據(jù)庫系統(tǒng)
- 使用面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)一個(gè)專用型數(shù)據(jù)庫應(yīng)用系統(tǒng).pdf
- 一個(gè)XML數(shù)據(jù)庫自動(dòng)化測試框架系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)數(shù)字校園系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 數(shù)據(jù)庫課程設(shè)計(jì)--設(shè)計(jì)一個(gè)訂戶訂閱報(bào)刊的應(yīng)用系統(tǒng)
- 一個(gè)并行對(duì)象關(guān)系數(shù)據(jù)庫系統(tǒng)底層結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)游戲系統(tǒng)中的數(shù)據(jù)庫優(yōu)化技術(shù)研究與應(yīng)用.pdf
- 一個(gè)數(shù)據(jù)管理控制臺(tái)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一個(gè)基于C-S模式的內(nèi)存數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論