版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 前 言</b></p><p> 學(xué)生學(xué)籍管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)生學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)人工的方式管理文件學(xué)籍,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不
2、少的困難。 </p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。 </p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生學(xué)籍信息進(jìn)行管理,具有著手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生學(xué)籍管理的效率,也
3、是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。 </p><p> 因此,開(kāi)發(fā)這樣一套管理軟件成為很有必要的事情,在下面的各章中將以開(kāi)發(fā)一套學(xué)生學(xué)籍管理系統(tǒng)為例,談?wù)勂溟_(kāi)發(fā)過(guò)程和所涉及到的問(wèn)題及解決方法。</p><p><b> 第一章 系統(tǒng)概述</b></p><p><b> 1.1 開(kāi)發(fā)背景</b><
4、;/p><p> 1.1.1 當(dāng)前趨勢(shì)</p><p> 現(xiàn)代教育技術(shù)特別是網(wǎng)絡(luò)與多媒體技術(shù)的發(fā)展,對(duì)學(xué)習(xí)活動(dòng)產(chǎn)生了具有深遠(yuǎn)意義的沖擊,網(wǎng)絡(luò)中的學(xué)習(xí)者必須是一個(gè)主動(dòng)行為著的主體,人們可以選擇或者設(shè)計(jì)適合其學(xué)習(xí)特點(diǎn)的信息采集、加工與重組方式,一種個(gè)性化的學(xué)習(xí)類(lèi)型。該學(xué)籍管理系統(tǒng)采用多層架構(gòu)的系統(tǒng),是真正適應(yīng)教育信息化發(fā)展三大趨勢(shì)的校園網(wǎng)絡(luò)應(yīng)用系統(tǒng),全面支持Internet功能、遠(yuǎn)程訪問(wèn)功能,
5、全部采用最先進(jìn)的B/S(瀏覽器/服務(wù)器) 模式來(lái)開(kāi)發(fā),支持有關(guān)學(xué)校信息交流、日常教學(xué)、教務(wù)管理等的各種應(yīng)用,提供了一個(gè)基于校園內(nèi)聯(lián)網(wǎng)中支持各種類(lèi)型的學(xué)校應(yīng)用產(chǎn)品的服務(wù)平臺(tái)和開(kāi)發(fā)平臺(tái),基本目標(biāo)是在學(xué)校內(nèi)部和外部建立起順暢的信息通道,讓信息技術(shù)成為推動(dòng)教育生產(chǎn)力的有力工具,提高學(xué)校的管理水平和效率,同時(shí)充分利用全球的教育資源為學(xué)校的教育服務(wù),克服了目前大部分學(xué)校的校園網(wǎng)建設(shè)只起到宣傳作用的通病。</p><p>
6、1.1.2 用計(jì)算機(jī)管理學(xué)生學(xué)籍的意義 </p><p> 現(xiàn)在我國(guó)的中小學(xué)校中學(xué)籍的管理水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了許多人力和物力,在信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理所取代。</p><p> 作為一個(gè)計(jì)算機(jī)應(yīng)用的本科生,希望可以在這方面有所貢獻(xiàn)。改革的總設(shè)計(jì)師鄧小平同志說(shuō)過(guò)“科學(xué)技術(shù)是第一生產(chǎn)力”,我希望能用我四
7、年的所學(xué)編制出一個(gè)實(shí)用的程序來(lái)幫助中小學(xué)進(jìn)行更有效的學(xué)籍管理。</p><p> 歸納起來(lái),好處大約有以下幾點(diǎn):</p><p> 1.可以存儲(chǔ)歷屆的學(xué)生學(xué)籍,安全、高效;</p><p> 2.只需一到二名學(xué)籍錄入員即可操作系統(tǒng),節(jié)省大量人力;</p><p> 3.可以迅速查到所需信息。 </p><p>
8、 1.2 學(xué)籍管理系統(tǒng)概述</p><p> 1.2.1 開(kāi)展該系統(tǒng)的原因</p><p> 由于現(xiàn)今的學(xué)籍管理非常繁瑣,行政人員付出大量的工作時(shí)間,得到的效率很低。因此為提高工作效率,減輕校方人員的工作負(fù)擔(dān),決定開(kāi)發(fā)學(xué)籍管理系統(tǒng)軟件。 1.2.2 該工程的基本目標(biāo)</p><p> 開(kāi)發(fā)此學(xué)籍管理系統(tǒng)軟件,以供教學(xué)人員及操作者進(jìn)行學(xué)籍管理,方便操作者隨時(shí)
9、添加、查詢、修改等。為了我們提高軟件開(kāi)發(fā)的能力,學(xué)習(xí)漢語(yǔ)編程的技巧,提高工作設(shè)計(jì)思想,通過(guò)本次的工程開(kāi)發(fā),開(kāi)發(fā)小組成員與輔助老師,公司的技師交流,能從中學(xué)習(xí)知識(shí)吸取經(jīng)驗(yàn),再技術(shù)和軟件思想上同時(shí)得到鍛煉和提高,從而使總體水升到一個(gè)新的高度。</p><p> 1.3 開(kāi)發(fā)環(huán)境以及開(kāi)發(fā)工具介紹</p><p> 該軟件是在Windows 2000 Advanced Server + Vis
10、ual Basic 6.0 + SQL Server 2000的環(huán)境下完成的。下面就對(duì)這些開(kāi)發(fā)工具進(jìn)行介紹:</p><p> 1.3.1 Visual Basic 6.0</p><p> 微軟公司的Visual Basic 6.0是Windows應(yīng)用程序開(kāi)發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_(kāi)發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各
11、種功能,減少了編程人員的工作量,也簡(jiǎn)化了界面設(shè)計(jì)過(guò)程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。利用VISUAL BASIC 程序設(shè)計(jì)語(yǔ)言,可以很方便地設(shè)計(jì)出在WINDOWS環(huán)境下運(yùn)行的應(yīng)用程序。故而,實(shí)現(xiàn)本系統(tǒng)VB是一個(gè)相對(duì)較好的選擇。</p><p> 1.3.1.1 Visual Basic的編程特點(diǎn)</p><p> Visual Basic語(yǔ)言的出現(xiàn)為Windows下的編程
12、提出了一個(gè)新概念,利用Visual Basic的動(dòng)態(tài)數(shù)據(jù)交換、對(duì)象的鏈接和嵌入、動(dòng)態(tài)鏈接庫(kù)、ActiveX技術(shù)可以很方便地設(shè)計(jì)出功能強(qiáng)大的應(yīng)用程序。</p><p> 利用Visual Basic語(yǔ)言編程有以下幾個(gè)特點(diǎn):</p><p><b> 可視化程序設(shè)計(jì)</b></p><p> 在Visual Basic中開(kāi)發(fā)的應(yīng)用程序,不但有
13、豐富的圖形界面,同時(shí)由用戶為開(kāi)發(fā)圖形界面添加的代碼真是少而又少,因?yàn)樵谠O(shè)計(jì)圖形界面的過(guò)程中只需設(shè)置 ActiveX控件的屬性即可。</p><p> 強(qiáng)大的數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)功能</p><p> 隨著Visual Basic 語(yǔ)言的向前發(fā)展,它在數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)方面的功能優(yōu)勢(shì)就愈加明顯,利用Visual Basic 中的ODBC——開(kāi)放式的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)可以很方便地開(kāi)發(fā)出自己的數(shù)據(jù)庫(kù)應(yīng)用程序;
14、利用 Visual Basic自帶的可視化數(shù)據(jù)管理器和報(bào)表生成器,完全可以在Visual Basic就完成數(shù)據(jù)庫(kù)的開(kāi)發(fā)工作。</p><p><b> 3.其它特性</b></p><p> 在Visual Basic以前的版本中,由于仍然擺脫不了解釋執(zhí)行的代碼運(yùn)行機(jī)制,所以在相當(dāng)?shù)某潭壬现萍s了 Visual Basic 的發(fā)展。</p><p
15、> 從Visual Basic5.0版本開(kāi)始,在Visual Basic 中制作的應(yīng)用程序都改變?yōu)榫幾g執(zhí)行,使得Visual Basic的代碼效率有了很大的提高,同時(shí)執(zhí)行的速度 也加快了解30%(同Visual Basic4.0相比)。</p><p> 當(dāng)然在 Visual Basic中還有其它特性,例如:</p><p> 面向?qū)ο蟮木幊陶Z(yǔ)言;</p><
16、;p><b> 結(jié)構(gòu)化程序設(shè)計(jì);</b></p><p> 事件驅(qū)動(dòng)的程序設(shè)計(jì):</p><p> 在傳統(tǒng)的或“過(guò)程化”的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一部分代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應(yīng)用程序中預(yù)定的路徑執(zhí)行,必要時(shí)才會(huì)調(diào)用過(guò)程。</p><p> 在事件驅(qū)動(dòng)的應(yīng)用程序中,代碼不是按預(yù)定的路徑執(zhí)行,而
17、是在響不同的事件時(shí)執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來(lái)自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā)、甚至由應(yīng)用程序本身的消息觸發(fā)。這些事件的順序,決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運(yùn)行時(shí)所經(jīng)過(guò)的路徑都是不同的。</p><p><b> 支持動(dòng)態(tài)鏈接庫(kù);</b></p><p> 應(yīng)用程序之間的資源共享。 </p><p>
18、1.3.1.2 VB 支持的數(shù)據(jù)庫(kù)系統(tǒng)</p><p> VB支持對(duì)多格式的數(shù)據(jù)庫(kù)的訪問(wèn)和維護(hù),無(wú)論是Access還是Foxpro中創(chuàng)建的數(shù)據(jù)庫(kù),都可以用VB打開(kāi),對(duì)其進(jìn)行查詢、修改和刪除等操作。事實(shí)上,VB幾乎支持對(duì)市面上所有數(shù)據(jù)庫(kù)的訪問(wèn)。</p><p> VB可以訪問(wèn)的數(shù)據(jù)庫(kù)可以簡(jiǎn)單的分為三類(lèi),即:Microsoft Access格式數(shù)據(jù)庫(kù),外部數(shù)據(jù)庫(kù)和ODBC數(shù)據(jù)庫(kù)。VB對(duì)多種
19、數(shù)據(jù)庫(kù)格式的支持,大大的增強(qiáng)了開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的能力。</p><p> 1.3.1.3 Jet數(shù)據(jù)庫(kù)引擎</p><p> Microsoft引擎為Visual Basic與數(shù)據(jù)庫(kù)的接口提供了基本的方法。Jet引擎被Visual Basic,Microsoft Access和其他Microsoft產(chǎn)品共享。Jet數(shù)據(jù)庫(kù)引擎提供了多種功能,Jet的數(shù)據(jù)定義功能支持對(duì)表、索引、查詢的創(chuàng)
20、建、修改和刪除。Jet以主鍵標(biāo)和表間引用完整性的形式支持?jǐn)?shù)據(jù)完整性。</p><p> 對(duì)于數(shù)據(jù)操縱,Jet支持使用SQL。SQL提供用單獨(dú)語(yǔ)句對(duì)基于用戶定義標(biāo)準(zhǔn)的記錄組進(jìn)行檢索、添加、刪除或更新的方法。</p><p> Jet也提供對(duì)安全功能的支持。這種功能讓開(kāi)發(fā)者指定用戶標(biāo)識(shí)符和口令,他們必須在用戶訪問(wèn)數(shù)據(jù)庫(kù)之前給出。Jet也支持使用許可,或是對(duì)單個(gè)表和查詢的訪問(wèn)級(jí)別(例如,只讀
21、或讀寫(xiě)可訪問(wèn)性)。這是的數(shù)據(jù)庫(kù)管理員要對(duì)每一位用戶或用戶組分配對(duì)數(shù)據(jù)庫(kù)不同特定訪問(wèn)。</p><p> 除了數(shù)據(jù)操作和數(shù)據(jù)定義任務(wù)外,也可用Jet引擎來(lái)執(zhí)行其他的任務(wù)。Jet還具備在數(shù)據(jù)庫(kù)開(kāi)發(fā)工作中所需的其他功能,這些功能包括:數(shù)據(jù)庫(kù)修復(fù),數(shù)據(jù)庫(kù)壓縮(以使消除不同的空間)和重新索引。</p><p> 1.3.1.4 數(shù)據(jù)庫(kù)開(kāi)發(fā)中的三大工具</p><p>
22、Visual Basic在數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)領(lǐng)域中,提供包含數(shù)據(jù)管理(DataManager),數(shù)據(jù)控件(Data Control)以及數(shù)據(jù)編程對(duì)象(數(shù)據(jù)訪問(wèn)對(duì)象(DAO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和ActiveX數(shù)據(jù)對(duì)象(ADO))等功能強(qiáng)大的工具,協(xié)助設(shè)計(jì)人員輕松的連接數(shù)據(jù)庫(kù)文件,并訪問(wèn)其中的數(shù)據(jù),在功能方面與其他一些專(zhuān)業(yè)數(shù)據(jù)庫(kù)軟件(如FoxPro,Micosoft Access等)不相上下。</p><p>
23、; 數(shù)據(jù)管理器(Data Manager)是Visual Basical已有的老成員之一,拓本盛舉有的Jet數(shù)據(jù)庫(kù)引擎(Database Engine)可以幫助VB程序元件立即維護(hù)數(shù)據(jù)庫(kù)內(nèi)容,并可通過(guò)輸入查詢或查找數(shù)據(jù)庫(kù)信息,而不必再通過(guò)其他數(shù)據(jù)庫(kù)軟件另外去設(shè)計(jì)數(shù)據(jù)庫(kù)。</p><p> 數(shù)據(jù)控件是VB所提供的基本控件成員之一。它使得設(shè)計(jì)者省下一堆程序代碼編寫(xiě)的工作,能夠輕松的設(shè)計(jì)及維護(hù)數(shù)據(jù)庫(kù)內(nèi)容。數(shù)據(jù)控件可
24、以通過(guò)一些屬性的設(shè)置去鏈接某個(gè)數(shù)據(jù)庫(kù)文件,但是它本身并無(wú)法顯示數(shù)據(jù)庫(kù)各個(gè)記錄的內(nèi)容,必須在搭配其他具有數(shù)據(jù)感知(Data Aware)功能的控件對(duì)應(yīng)并顯示一個(gè)字段內(nèi)容,以方便地進(jìn)行記錄的瀏覽及編輯工作。</p><p> VB提供的數(shù)據(jù)訪問(wèn)對(duì)象(Data Access Object;DAO)讓程序設(shè)計(jì)者擁有更大的發(fā)揮空間。借助程序代碼編寫(xiě),直接控制Jet數(shù)據(jù)庫(kù)引擎,配合數(shù)據(jù)庫(kù)控件,能夠開(kāi)發(fā)出更具彈性且高效率的數(shù)
25、據(jù)應(yīng)用程序。</p><p> RDO是處理遠(yuǎn)程數(shù)據(jù)庫(kù)的一些專(zhuān)門(mén)需要的對(duì)象集合。使用RDO可以不用本地的查詢機(jī)就能訪問(wèn)ODBC數(shù)據(jù)源,這無(wú)疑將大大提高應(yīng)用程序的性能。</p><p> ADO是VB6。0中新增的對(duì)象,它是一個(gè)更簡(jiǎn)單的對(duì)象模型,它更好的集成了其它數(shù)據(jù)訪問(wèn)技術(shù),并且對(duì)本地和遠(yuǎn)程數(shù)據(jù)庫(kù)均有共同的界面,可以取代DAO和RDO。ADO更易于使用。</p><
26、p> 我們?cè)诒鞠到y(tǒng)中利用數(shù)據(jù)管理器創(chuàng)建了數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)表,并采用了ADO數(shù)據(jù)訪問(wèn)技術(shù)。</p><p> 1.3.2 SQL Server 2000簡(jiǎn)介</p><p> SQL Server 2000是微軟公司最新版的大型數(shù)據(jù)庫(kù)服務(wù)器,其性能指標(biāo)在各方面都有趕超Oracle數(shù)據(jù)庫(kù)的趨勢(shì)。用它可以方便地管理數(shù)據(jù)庫(kù)和開(kāi)發(fā)應(yīng)用程序,它使用了最先進(jìn)的數(shù)據(jù)庫(kù)構(gòu)架,與Windows N
27、T/2000平臺(tái)緊密集成,具有完全的Web功能。通過(guò)對(duì)高端硬件平臺(tái)、網(wǎng)絡(luò)和存儲(chǔ)技術(shù)的支持,為WEB站和企業(yè)的應(yīng)用最大限度地提供了可擴(kuò)展性和高可靠性,能在Internet商業(yè)領(lǐng)域快速建立并應(yīng)用。此外,還增強(qiáng)了安全性,保護(hù)防火墻內(nèi)外的數(shù)據(jù)。支持基于角色的安全并擁有安全審計(jì)工具。在經(jīng)歷了SQL Server 6.5和7.0兩個(gè)版本的嘗試后,微軟公司終于開(kāi)始了大規(guī)模的業(yè)務(wù)。記得在以前各種關(guān)于SQL Server的文章,都會(huì)將其定位成中小型應(yīng)用方
28、面,這種感覺(jué)被大家自然的延續(xù)到了2000版之中。其實(shí)這是一種誤解。在過(guò)去的很長(zhǎng)一段時(shí)間中,微軟公司聘請(qǐng)了世界上最優(yōu)秀的數(shù)據(jù)庫(kù)專(zhuān)家以及專(zhuān)門(mén)搭建了信息量可謂空前的地理信息系統(tǒng),勵(lì)精圖治,就是為了摘掉扣在自己頭上的這頂帽子。有了強(qiáng)大的性能和功能支持,再配合其一向?yàn)槿朔Q道的易用性,SQL Server可以說(shuō)成為了開(kāi)發(fā)者手中的一柄利器! 另外,目前國(guó)內(nèi)的</p><p> 1.3.2.1 SQL Server數(shù)
29、據(jù)庫(kù)特點(diǎn)</p><p> 概括起來(lái),SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)具有以下主要特點(diǎn)。</p><p> 1.豐富的圖形管理工具,使系統(tǒng)管理、操作更為直觀方便。SQL Server企業(yè)管理器是一個(gè)基于圖形用戶界面(GUI)的集成管理工具,利用它可以配置管理SQL Server服務(wù)器、管理數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象、備份和恢復(fù)數(shù)據(jù)、調(diào)度任務(wù)和管理警報(bào)、實(shí)現(xiàn)數(shù)據(jù)復(fù)制和轉(zhuǎn)換操作等。此外
30、,SQL Server 2000還提供了SQL事件探查器、SQL查詢分析器、SQL Server服務(wù)管理器和多種操作向?qū)У葓D形界面管理工具,大大簡(jiǎn)化了用戶操作,從而增強(qiáng)了系統(tǒng)的易用性。</p><p> 2.動(dòng)態(tài)自動(dòng)管理和優(yōu)化功能。即使SQL Server數(shù)據(jù)庫(kù)管理員不做任何設(shè)置,SQL Server也能夠在運(yùn)行過(guò)程中根據(jù)環(huán)境配置和用戶訪問(wèn)情況動(dòng)態(tài)自動(dòng)配置,以達(dá)到最優(yōu)性能,從而減輕管理員工作。</p>
31、;<p> 3.充分的Internet技術(shù)支持。Internet網(wǎng)絡(luò)發(fā)展到今天已經(jīng)成為一條重要的信息發(fā)布渠道,SQL Server增強(qiáng)了對(duì)Internet技術(shù)支持,它除保留了前期版本中的數(shù)據(jù)庫(kù)Web出版工具“Web助手”外,還增強(qiáng)了對(duì)XML和HTTP技術(shù)的支持,這使得電子商務(wù)系統(tǒng)能夠通過(guò)XML等訪問(wèn)SQL Server數(shù)據(jù)庫(kù)系統(tǒng),也擴(kuò)展了SQL Server在數(shù)據(jù)挖掘和分析服務(wù)領(lǐng)域的應(yīng)用。</p><
32、p> 4.豐富的編程接口工具,使用戶開(kāi)發(fā)SQL Server數(shù)據(jù)庫(kù)應(yīng)用程序更加靈活。SQL Server提供了Transact-SQL、DB-Library for C、嵌入式SQL(ESQL)等開(kāi)發(fā)工具,Transact-SQL與工業(yè)標(biāo)準(zhǔn)SQL語(yǔ)言兼容,并在其基礎(chǔ)上加以擴(kuò)充,使它更適合事務(wù)處理方面的需要。此外,SQL Server 2000還支持ODBC、OLE DB、ADO規(guī)范,可以使用ODBC、OLE DB、ADO接口訪問(wèn)
33、SQL Server數(shù)據(jù)庫(kù)。</p><p> 5.具有很好的伸縮性和可靠性。SQL Server 2000既能運(yùn)行在Windows桌面操作系統(tǒng)下,又可運(yùn)行在服務(wù)器操作系統(tǒng)(包括Windows NT和Windows 2000)下;既能運(yùn)行在單CPU計(jì)算機(jī)上,又能運(yùn)行在對(duì)稱多處理系統(tǒng)下。所以,它具有很好的伸縮性,能夠滿足從桌面應(yīng)用到大型企業(yè)分布式應(yīng)用到不同層次用戶的要求。</p><p>
34、 6.簡(jiǎn)單的管理方式。SQL Server 2000與Microsoft Windows 2000有機(jī)集成,所以可以使用Windows 2000的活動(dòng)目錄(Active Directory)功能對(duì)SQL Server進(jìn)行集中管理,大大簡(jiǎn)化大型企業(yè)中的系統(tǒng)管理工作。此外,與Windows 2000的集成還使SQL Server能夠充分利用操作系統(tǒng)所提供的服務(wù)和功能(如安全管理、事件日志、性能監(jiān)視器、內(nèi)存管理和異步I/O等),從而增強(qiáng)了S
35、QL Server數(shù)據(jù)庫(kù)系統(tǒng)的功能,并且只需要占用很少的系統(tǒng)資源。</p><p> 1.3.3 ADO對(duì)象概述</p><p> ADO對(duì)象是針對(duì)當(dāng)前微軟的軟件所支持的數(shù)據(jù)進(jìn)行操作的最為有效、簡(jiǎn)單并且功能強(qiáng)大的方法。它可以把大部分?jǐn)?shù)據(jù)源可編程的屬性直接擴(kuò)展到Active Server上,主要含有Connection、Recordset與Command三種對(duì)象。其中:Connectio
36、n對(duì)象主要負(fù)責(zé)打開(kāi)或連接數(shù)據(jù)庫(kù)文件;Recordset對(duì)象主要是存取數(shù)據(jù)庫(kù)的內(nèi)容;Command對(duì)象主要是對(duì)數(shù)據(jù)庫(kù)下達(dá)行動(dòng)查詢指令以及SQL Server的Stored Proceduce。</p><p> ADO對(duì)象能夠存取到數(shù)據(jù)庫(kù)的內(nèi)容,首先要求數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序( ODBC驅(qū)動(dòng)程序與OLE DB驅(qū)動(dòng)程序)必須安裝上,否則,ADO對(duì)象是無(wú)法存取數(shù)據(jù)庫(kù)中內(nèi)容,其原理示意圖如圖1.1所示:</p>
37、<p> 圖1.1 ADO對(duì)象存取數(shù)據(jù)原理示意圖</p><p> 請(qǐng)注意:上圖中的“各種數(shù)據(jù)庫(kù)所對(duì)應(yīng)的驅(qū)動(dòng)程序”即ODBC驅(qū)動(dòng)程序與OLE DB驅(qū)動(dòng)程序。</p><p> 1.3.3.1 利用ADO開(kāi)發(fā)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用程序</p><p> ADO(Active Date Objects,即ActiveX數(shù)據(jù)對(duì)象)是一個(gè)ASP內(nèi)置的Active
38、X服務(wù)器組件(ActiveX Server Component)??砂阉cASP結(jié)合起來(lái),建立提供數(shù)據(jù)庫(kù)信息的網(wǎng)頁(yè)內(nèi)容,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、插入、更新、刪除等操作,并可以把在用戶端實(shí)現(xiàn)“網(wǎng)上實(shí)時(shí)更新顯示”的最新Web數(shù)據(jù)庫(kù)技術(shù)。</p><p> 要執(zhí)行ADO,服務(wù)器端必須安裝Windows NT Server 和Internet Information Server(IIS),而客戶端只要有IE或NETSCAP
39、E較新版本的瀏覽器即可。</p><p> 利用ADO開(kāi)發(fā)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用程序有以下幾個(gè)優(yōu)點(diǎn):</p><p> ?、?支持客戶機(jī)/服務(wù)器結(jié)構(gòu)(Client/Server)與Web系統(tǒng)開(kāi)發(fā)技術(shù)。</p><p> ?、?內(nèi)部有多個(gè)互相獨(dú)立的對(duì)象模型。</p><p> ?、?支持分批修改數(shù)據(jù)庫(kù)內(nèi)容。</p><p>
40、?、?支持多種不同的數(shù)據(jù)控制指標(biāo)形式。</p><p> ⑸ 先進(jìn)的Recordset數(shù)據(jù)高速緩存管理功能。</p><p> ⑹ 允許在程序中使用多個(gè)Recordset對(duì)象或者多個(gè)分批修改區(qū)塊傳送。</p><p> ?、?ADO屬于Free_threaded對(duì)象,利用它可以開(kāi)發(fā)出更有效的Web應(yīng)用程序。</p><p> 1.3.3
41、.2 ADO組件的主要對(duì)象及其功能</p><p> ADO組件又稱為數(shù)據(jù)庫(kù)訪問(wèn)組件,它提供了以下七種對(duì)象:</p><p> Connection對(duì)象:提供對(duì)數(shù)據(jù)庫(kù)的連接服務(wù)。</p><p> Command對(duì)象:定義對(duì)數(shù)據(jù)庫(kù)源操作的命令。</p><p> Recordset對(duì)象:由數(shù)據(jù)庫(kù)服務(wù)器所返回的記錄集。</p>
42、;<p> ●Recordset對(duì)象的LockType屬性的設(shè)置值</p><p> Fields對(duì)象:由數(shù)據(jù)庫(kù)服務(wù)器所返回的單一數(shù)據(jù)字段</p><p> Parametes對(duì)象:表示Command對(duì)象的參數(shù)。</p><p> Property對(duì)象:?jiǎn)为?dú)的一個(gè)Property對(duì)象,提供屬性功能。</p><p>
43、Error對(duì)象:提供處理錯(cuò)誤的功能。</p><p> 使用ADO對(duì)象可以建立和管理數(shù)據(jù)庫(kù)的連接,按數(shù)據(jù)庫(kù)服務(wù)器的要求獲得數(shù)據(jù),執(zhí)行更新、刪除、添加數(shù)據(jù)等操作,獲取ODBC的錯(cuò)誤信息等。</p><p> 1.3.3.3 用來(lái)操縱數(shù)據(jù)的SQL命令</p><p> SQL命令是發(fā)送給數(shù)據(jù)庫(kù)并要求數(shù)據(jù)庫(kù)操作的指令,它是專(zhuān)門(mén)為數(shù)據(jù)庫(kù)設(shè)計(jì)的語(yǔ)言,比一般的計(jì)算機(jī)程序語(yǔ)
44、言簡(jiǎn)單的多。SQL命令主要分成兩部分:DDL(Data Definition Language)和DML(Data Manipulation Language),其中DDL是建立數(shù)據(jù)表及數(shù)據(jù)列的指令群,而DML則是操作數(shù)據(jù)庫(kù)記錄的指令群,如數(shù)據(jù)庫(kù)記錄的添加、更新、刪除、和查詢等。</p><p> SQL命令,包括Select、Delete、Update、Insert Into、Select Into等。<
45、;/p><p> ?、?篩選及排序記錄的Select指令</p><p> 基本句型一:Select 字段串列 From 數(shù)據(jù)表</p><p> 基本句型二:Select … From … Where 篩選條件</p><p> 基本句型三:Select … From … Order By字段串列</p><p>
46、 Select Top:限定選取數(shù)據(jù)的條數(shù)</p><p> ⑵ 刪除數(shù)據(jù)記錄的Delete指令</p><p> 基本語(yǔ)法:Delete From 數(shù)據(jù)表 Where 條件式</p><p> ?、?更新數(shù)據(jù)記錄的Update指令</p><p> 基本語(yǔ)法:Update 數(shù)據(jù)表Set 表達(dá)式</p><p&g
47、t; ?、?增加數(shù)據(jù)記錄的Insert Into 指令</p><p> 基本句型一:Insert Into 數(shù)據(jù)表 (字段串列) Values (字段串列)</p><p> 基本句型二:Insert Into 數(shù)據(jù)表 (字段1,字段2,…,字段n) Select …</p><p> ?、?建立新數(shù)據(jù)表的Select Into 指令</p>&
48、lt;p> 該指令與“Insert Into … Select …”指令的區(qū)別是,這個(gè)指令將建立另一個(gè)新的數(shù)據(jù)表,而Insert Into是增加數(shù)據(jù)記錄到“現(xiàn)存的”數(shù)據(jù)表中。</p><p> 1.2.4 Visual Basic 6.0訪問(wèn)數(shù)據(jù)庫(kù)的過(guò)程</p><p><b> ?、俣x數(shù)據(jù)庫(kù)組建</b></p><p> Dim
49、 con As New ADODB.Connection </p><p><b> ?、诖蜷_(kāi)數(shù)據(jù)庫(kù)</b></p><p> 對(duì)于SQL數(shù)據(jù)庫(kù),其連接語(yǔ)句為con.Open "driver={sql server};server=</p><p> localhost;uid=sa;pwd=;database=student&q
50、uot;。而對(duì)于Access數(shù)據(jù)庫(kù),連接語(yǔ)句為</p><p> con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=</p><p> " & App.Path + "\student.mdb"</p><p> ?、墼O(shè)定SQL語(yǔ)句,使用“Execute”
51、命令,即可開(kāi)始執(zhí)行訪問(wèn)數(shù)據(jù)庫(kù)的動(dòng)作</p><p> Dim rs As New ADODB.Recordset 其中rs為結(jié)果集對(duì)象(RECORDSET)</p><p> ④關(guān)閉結(jié)果集對(duì)象,斷開(kāi)與數(shù)據(jù)庫(kù)的連接</p><p><b> rs.Close</b></p><p><b> Con.Cl
52、ose</b></p><p> 第二章 系統(tǒng)整體規(guī)劃</p><p><b> 2.1數(shù)據(jù)庫(kù)的設(shè)計(jì)</b></p><p> 在系統(tǒng)設(shè)計(jì)過(guò)程中,首先要建立的就是數(shù)據(jù)庫(kù)。本數(shù)據(jù)庫(kù)采用SQL Server 2000來(lái)構(gòu)造,共使用了7個(gè)表,它們分別是用戶信息表(UserInfo)、學(xué)生信息表(StuInfo)、班級(jí)信息表(Clas
53、s)、專(zhuān)業(yè)信息表(Major)、學(xué)院信息表(Depart)、課程信息表(Lesson)、學(xué)生成績(jī)表(Result)。</p><p> 用戶信息表(UserInfo):</p><p> 學(xué)生信息表(StuInfo):</p><p> 班級(jí)信息表(Class):</p><p> 專(zhuān)業(yè)信息表(Major):</p>&
54、lt;p> 學(xué)院信息表(Depart):</p><p> 6.課程信息表(Lesson):</p><p> 7.學(xué)生成績(jī)表(Result):</p><p><b> 2.2系統(tǒng)流程圖</b></p><p> 圖2.1 系統(tǒng)流程圖</p><p> 2.3 系統(tǒng)功能分析系
55、統(tǒng)開(kāi)發(fā)的目標(biāo)是實(shí)現(xiàn)學(xué)生學(xué)籍管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,這是在</p><p> 用戶要求的基礎(chǔ)上提出來(lái)的,功能要求如下: </p><p> ?。ㄒ唬W(xué)生信息管理:能對(duì)學(xué)生信息進(jìn)行添加、修改、刪除。</p><p> ?。ǘ┱n程管理:對(duì)課程進(jìn)行添加、修改、刪除操作。</p><p> (三)專(zhuān)業(yè)/學(xué)院設(shè)置:</p>&l
56、t;p> (三)考試成績(jī)管理:</p><p> ?。ㄋ模┎樵儗W(xué)生信息:根據(jù)學(xué)號(hào)或姓名對(duì)學(xué)生信息進(jìn)行精確/模糊查詢</p><p> ?。ㄎ澹┯脩艄芾恚憾x使用本系統(tǒng)的用戶名稱及密碼 </p><p> 第三章 系統(tǒng)具體實(shí)現(xiàn)</p><p> 經(jīng)過(guò)需求分析、功能模塊設(shè)計(jì)之后要進(jìn)入詳細(xì)設(shè)計(jì)階段,本階段將按系統(tǒng)的主要模塊進(jìn)行論述,重在
57、闡述具體的某項(xiàng)功能的實(shí)現(xiàn)方法或運(yùn)用到的相關(guān)技術(shù)。</p><p><b> 3.1 準(zhǔn)備工作</b></p><p> 添加引用:?jiǎn)螕艄こ滩藛沃械囊眠x項(xiàng),添加Microsoft ActiveX Data Objects 2.6 Library和Microsoft Excel 9.0 Object Library兩個(gè)引用。</p><p>
58、 添加部件:?jiǎn)螕艄こ滩藛沃械牟考x項(xiàng),添加Microsoft ADO Data Control 6.0(OLEDB)、Microsoft Common Dialog Control 6.0(SP3) 、Microsoft FlexGrid Control 6.0、Microsoft Windows Common Controls 6.0(SP4)和Microsoft Windows Common Controls-2 6.0五項(xiàng)。&l
59、t;/p><p><b> 3.2 模塊設(shè)計(jì)</b></p><p> 添加兩個(gè)模塊module1和module2,在module1中添加如下代碼</p><p> Option Explicit</p><p> Global con As New ADODB.Connection</p><p
60、> Global rs As New ADODB.Recordset</p><p> Global classid As String, stuid As String</p><p> Global LoginUser As String, LoginPower As String </p><p> LoginUser記錄當(dāng)前登陸用戶的用戶名,
61、LoginPower記錄當(dāng)前登陸用戶的權(quán)限</p><p> Dim Userid As String, Userpwd As String, Username As String, Userpower As String</p><p> Dim sqlstr As String</p><p> Sub Main()</p><p>
62、; If App.PrevInstance = True Then</p><p> MsgBox "注意程序已經(jīng)運(yùn)行,不能再次裝載!", vbOKOnly</p><p><b> Exit Sub</b></p><p><b> Else</b></p><p>
63、 Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&App.Path+"\student.mdb"</p><p> Frmlogin.Show</p><p><b> End If</b></p><p><b>
64、 End Sub</b></p><p> 在module2中添加代碼(MD5算法)</p><p> 詳細(xì)代碼見(jiàn)程序中module2.bas</p><p> 3.3 用戶界面實(shí)現(xiàn)</p><p> 3.3.1 登陸界面(frmlogin)</p><p> 因?yàn)楸鞠到y(tǒng)是按學(xué)籍管理的思想設(shè)計(jì)的,
65、故而登陸部分主要完成密碼校驗(yàn)、確定管理員等功能,對(duì)于密碼本系統(tǒng)采用的是MD5算法。這里附上本程序的登陸界面,見(jiàn)圖3.1。</p><p> 圖3.1 用戶登陸界面</p><p> 在代碼窗口的“通用”部分,定義一個(gè)模塊級(jí)的公共變量loginno用來(lái)記錄當(dāng)前密碼輸入錯(cuò)誤的次數(shù)</p><p> Dim loginno As Integer</p>
66、<p> 在Form的Load事件中,將txtuser設(shè)置為焦點(diǎn),初始化loginno。</p><p> Private Sub Form_Load()</p><p> loginno = 0</p><p><b> Me.Show</b></p><p> txtuser.SetFocus&
67、lt;/p><p><b> End Sub</b></p><p> 這里將“確定”和“取消”兩個(gè)按鈕作為一個(gè)按鈕數(shù)組cmdOkCancel:確定按鈕的index屬性為0,取消按鈕的index屬性為1。</p><p> 利用SQL語(yǔ)句,在數(shù)據(jù)庫(kù)中查詢,如果查到相應(yīng)的記錄,則調(diào)用Case 0事件,用戶的登陸獲得通過(guò),此時(shí)可以退出登陸窗口,并
68、進(jìn)入MDI主窗口,同時(shí)將用戶類(lèi)型和用戶名分別傳遞到MDI主窗口和frmmanage中;如果沒(méi)有相應(yīng)的記錄,則給出提示錯(cuò)誤信息,同時(shí)將用戶輸入錯(cuò)誤密碼次數(shù)增加1,如果錯(cuò)誤超過(guò)3次,則退出整個(gè)系統(tǒng);若次數(shù)還沒(méi)有超過(guò)3次,則提示用戶重新輸入。</p><p> 根據(jù)以上的設(shè)計(jì),cmdOkCancel的Click事件的代碼如下:</p><p> Private Sub cmdOkCancel
69、_Click(Index As Integer)</p><p> Select Case Index</p><p><b> Case 0</b></p><p><b> ……</b></p><p> Userid = Trim(txtuser.Text)</p>&l
70、t;p> Userpwd = MD5(Trim(txtPassword.Text))</p><p> sqlstr = "select * from UserInfo where UserID='" & Userid & "'"</p><p> rs.Open sqlstr, con, 1, 1<
71、/p><p> If Not rs.EOF Then</p><p> If rs("UserPWD") <> Userpwd Then</p><p><b> '密碼錯(cuò)誤時(shí)</b></p><p> MsgBox "您輸入的密碼不正確!", vbQues
72、tion</p><p> Me.Caption = "請(qǐng)輸入用戶名和密碼:"</p><p> loginno = loginno + 1</p><p> '當(dāng)錯(cuò)誤的密碼次數(shù)達(dá)到3次時(shí),不能登陸,退出!</p><p> If loginno = 3 Then</p><p>
73、 MsgBox "對(duì)不起,您不能使用該系統(tǒng)!請(qǐng)與管理員聯(lián)系。", vbInformation</p><p><b> Unload Me</b></p><p><b> Exit Sub</b></p><p><b> End If</b></p><
74、;p><b> ……</b></p><p><b> Else</b></p><p> LoginUser = Userid '保存當(dāng)前登陸用戶名</p><p> LoginPower = rs.Fields(3) </p><p> '將當(dāng)前登陸用
75、戶的權(quán)限保存到LoginPower中</p><p><b> Unload Me</b></p><p> frmflash.Show</p><p><b> End If</b></p><p><b> Else</b></p><p>
76、 MsgBox "沒(méi)有您輸入的用戶名!", 32</p><p><b> ……</b></p><p><b> End If</b></p><p> rs.Close: Set rs = Nothing</p><p><b> Case 1</b
77、></p><p><b> ‘退出整個(gè)程序</b></p><p><b> Unload Me</b></p><p> End Select</p><p><b> End Sub</b></p><p> 3.3.2 MDI主窗
78、口(frmmain)</p><p> 本系統(tǒng)采取多文檔界面(MultiDocument Interface)。多文檔界面是一種Windows用戶界面標(biāo)準(zhǔn)。它有一個(gè)父窗口,在典型情況下,父窗口用來(lái)顯示程序菜單以及包含子窗口。</p><p> 在工程中添加一個(gè)MDI窗口,取名為“frmmain.frm”,并為MDI窗體進(jìn)行菜單和代碼的設(shè)計(jì),其運(yùn)行界面如圖3.2:</p>
79、<p><b> 圖3.2 主界面</b></p><p> 3.3.2.1 菜單設(shè)計(jì)</p><p> MDI主窗體是整個(gè)系統(tǒng)的容器,為了方便用戶的使用,應(yīng)設(shè)計(jì)相應(yīng)的菜單和代碼。</p><p> 3.3.2.2 窗體代碼設(shè)計(jì)</p><p> 1.在代碼窗口的通用部分,聲明一個(gè)API函數(shù)用于打開(kāi)幫
80、助文件和調(diào)用Outlook發(fā)送郵件。</p><p> Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, By
81、Val lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)</p><p><b> 2.判斷用戶權(quán)限</b></p><p> 如果登陸的為普通用戶類(lèi)型的用戶,則用戶不能使用“用戶管理”這一功能,而對(duì)于管理員類(lèi)型的用戶,則沒(méi)有此限制。所以在MDIForm的Loa
82、d事件中需要判斷用戶類(lèi)型。</p><p> Private Sub MDIForm_Load()</p><p> StatusBar.Panels(2).Text = "當(dāng)前操作員:" & LoginUser & " " & LoginPower & ""</p><
83、;p> If LoginPower = "普通用戶" Then</p><p> filemenu11.Enabled = False</p><p> Toolbar1.Buttons.Item(5).Enabled = False</p><p><b> End If</b></p><
84、;p><b> End Sub</b></p><p> 3.Form的QueryUnload事件</p><p> 當(dāng)用戶要退出MDI窗體時(shí),需要在 QueryUnload事件中詢問(wèn)用戶是否真的要退出本系統(tǒng);如果用戶不要退出,則將Cancel置為1,取消整個(gè)退出過(guò)程。</p><p> Private Sub MDIF
85、orm_QueryUnload(Cancel As Integer, UnloadMode As Integer)</p><p> If MsgBox("確定要退出學(xué)生檔案管理系統(tǒng)嗎?是/否",</p><p> vbYesNo+vbQuestion+ vbDefaultButton1) = vbNo Then</p><p> Canc
86、el = 1</p><p><b> End If</b></p><p><b> End Sub</b></p><p> QueryUnload和Unload事件</p><p> 當(dāng)一個(gè)子窗體或一個(gè)Form對(duì)象關(guān)閉時(shí),在那個(gè)窗體中的QueryUnload事件先于該窗體的Unload
87、事件發(fā)生,Unload事件在Terminate事件之前發(fā)生。</p><p> 當(dāng)一個(gè)應(yīng)用程序關(guān)閉時(shí),可使用QueryUnload或Unload事件過(guò)程將Cancel屬性設(shè)置為T(mén)rue來(lái)阻止關(guān)閉過(guò)程。但是,QueryUnload事件是在任一個(gè)卸載之前在所有窗體中發(fā)生,而Unload是在每個(gè)窗體卸載時(shí)發(fā)生。</p><p> 在這兩個(gè)事件中,均可將Cancel設(shè)置為任何非零的值來(lái)防止窗體
88、被刪除。但Unload不能阻止其他事件,諸如從Microsoft Windows操作環(huán)境中退出等;而QueryUnload事件則可以阻止從Windows中的退出。有介于此,通常來(lái)說(shuō)都是在QueryUnload中詢問(wèn)用戶是否要退出當(dāng)前窗體。</p><p> 4.“重新登陸”子菜單的代碼</p><p> 當(dāng)單擊了“重新登陸”或者按下了“F2”鍵時(shí),將會(huì)給出提示,如果用戶在提示框中按下了
89、“確定”按鈕,則退出整個(gè)MDI主窗體,并顯示登陸窗體。</p><p> Private Sub filemenu15_Click()</p><p> If MsgBox("若重新登陸,所有窗體都將關(guān)閉!是否重新登陸?", vbYesNo + vbQuestion, "重新登陸") = vbYes Then</p><p
90、> Unload Me Frmlogin.Show</p><p><b> End If</b></p><p><b> End Sub</b></p><p> 5.“幫助主題”子菜單的代碼</p><p> 調(diào)用Windows API函數(shù),打開(kāi)help.chm幫助
91、文件。</p><p> Private Sub filemenu21_Click()</p><p> ShellExecute 0, "open", App.Path & "\help.chm", "", "", 1</p><p><b> End Sub&
92、lt;/b></p><p> 6.“給我發(fā)郵件”子菜單的代碼</p><p> 如果用戶單擊了“給我發(fā)郵件”子菜單,則會(huì)調(diào)用API函數(shù),調(diào)用Outlook。</p><p> Private Sub filemenu22_Click()</p><p> ShellExecute Me.hwnd, "open&quo
93、t;, "mailto:datou158@etang.com", "", App.Path, 1</p><p><b> End Sub</b></p><p> 7.當(dāng)用戶單擊查詢學(xué)生資料菜單項(xiàng)或者按下F3鍵時(shí),將會(huì)出現(xiàn)“查找學(xué)生”窗體,供用戶查找滿足特定要求的學(xué)生信息。</p><p> Pr
94、ivate Sub filemenu45_Click()</p><p><b> '查找學(xué)生</b></p><p> frmstusearch.Show 1</p><p><b> End Sub</b></p><p> 3.3.3 用戶管理窗體(frmmanage)<
95、/p><p> 向項(xiàng)目中添加窗體,并命名為frmmanage.frm。窗體的控件設(shè)計(jì)如圖3.3所示</p><p> 圖3.3 用戶管理界面</p><p> 如果登陸的用戶類(lèi)型是管理員,用戶管理一項(xiàng)是可用的,當(dāng)單擊該子菜單時(shí),將會(huì)出現(xiàn)用戶管理窗口,管理員可以對(duì)系統(tǒng)用戶進(jìn)行添加和刪除操作。</p><p> 3.3.3.1 窗體代碼設(shè)計(jì)&
96、lt;/p><p> 1.定義一個(gè)整型變量DelNO用來(lái)存儲(chǔ)當(dāng)前系統(tǒng)用戶的數(shù)目,當(dāng)DelNO<=1時(shí)提示用戶不能再刪除用戶。在該窗體的通用部分寫(xiě)如下代碼:</p><p> Dim DelNO As Integer</p><p> 2.窗體加載時(shí),初始化Listview用以顯示系統(tǒng)用戶列表,代碼如下</p><p> Privat
97、e Sub Form_Load()</p><p> '初始化ListView</p><p> Dim clmX As ColumnHeader</p><p> Set clmX = ListView.ColumnHeaders.Add(, , "用戶名", ListView.Width / 3)</p><
98、p> Set clmX = ListView.ColumnHeaders.Add(, , "密碼", ListView.Width / 6, 2)</p><p> Set clmX = ListView.ColumnHeaders.Add(, , "姓名", ListView.Width / 4, 2)</p><p> Set clm
99、X = ListView.ColumnHeaders.Add(, , "用戶權(quán)限", ListView.Width / 4, 2)</p><p> Combo1.Clear</p><p> Combo1.AddItem "普通用戶"</p><p> Combo1.AddItem "超級(jí)用戶"&l
100、t;/p><p> Combo1.ListIndex = 0</p><p> LoadOperator</p><p><b> End Sub</b></p><p> 其中調(diào)用了LoadOperator函數(shù),該函數(shù)用來(lái)顯示和刷新Listview中的數(shù)據(jù)</p><p> Private
101、 Sub LoadOperator()</p><p> On Error Resume Next</p><p> Dim Listit As ListItem</p><p> ListView.ListItems.Clear</p><p> ListView.LabelEdit = lvwAuto</p><
102、;p> ListView.View = 3</p><p> Dim ef As New ADODB.Recordset</p><p> sqlstr = "select * from UserInfo"</p><p> ef.Open sqlstr, con, 1, 1</p><p> DelNO
103、= ef.RecordCount</p><p> Do While Not ef.EOF</p><p> Set Listit = ListView.ListItems.Add(, , ef.Fields("UserID"))</p><p> Listit.SubItems(1) = "***" </p&g
104、t;<p> 隱藏用戶的密碼,用***來(lái)替代。</p><p> Listit.SubItems(2) = ef("UserName")</p><p> Listit.SubItems(3) = ef("UserPower")</p><p> ef.MoveNext</p><p&
105、gt;<b> Loop</b></p><p> Set ef = Nothing</p><p><b> End Sub</b></p><p><b> 3.添加用戶</b></p><p> 在Textbox中輸入了相應(yīng)的數(shù)據(jù)以后,按添加按鈕則調(diào)用該按鈕的C
106、lick事件,代碼如下</p><p> 當(dāng)單擊“添加”按鈕時(shí),首先檢查輸入的用戶名和密碼是否為空,代碼如下:</p><p> Private Sub Command4_Click()</p><p> If Trim(Text1.Text) = "" Then</p><p> MsgBox "登陸用
107、戶名不允許為空!", vbOKOnly + 48, "提示:"</p><p> Text1.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If InStr(1, Trim
108、(Text1.Text), "'", vbTextCompare) Then</p><p> MsgBox "用戶姓名中有特殊字符" + "<'>,請(qǐng)刪除。", vbOKOnly + 48, "提示:"</p><p> Text1.SetFocus</p>&l
109、t;p><b> Exit Sub</b></p><p><b> End If</b></p><p> If Trim(Text2.Text) = "" Then</p><p> MsgBox "密碼不能為空,請(qǐng)輸入密碼!", vbOKOnly + 48, &q
110、uot;提示:"</p><p> Text2.Text = ""</p><p> Text3.Text = ""</p><p> Text2.SetFocus</p><p><b> Exit Sub</b></p><p><
111、;b> End If</b></p><p><b> End Sub</b></p><p> 如果不為空,則檢查用戶名是否有重復(fù),需要打開(kāi)系統(tǒng)信息表,</p><p> Private Sub Command4_Click()</p><p><b> ……</b>&
112、lt;/p><p> sqlstr = "select * from UserInfo where UserID='" & Text1.Text & "'"</p><p> rs.Open sqlstr, con, 1, 1</p><p><b> End Sub</b&g
113、t;</p><p> 如果當(dāng)前記錄不為空,則逐條記錄檢查是否有重復(fù)</p><p> Private Sub Command4_Click()</p><p><b> ……</b></p><p> Userid = Trim(Text1.Text)</p><p> Userpwd
114、 = MD5(Trim(Text2.Text))</p><p> Username = Trim(Text4.Text)</p><p> Userpower = Trim(Combo1.Text)</p><p> DelNO = rs.RecordCount</p><p> Do While Not rs.EOF</p&
115、gt;<p><b> ……</b></p><p> rs.MoveNext</p><p><b> Loop</b></p><p><b> ……</b></p><p><b> End Sub</b></p>
116、<p> 如果有重復(fù),則提示已存在這個(gè)用戶,然后將焦點(diǎn)設(shè)置給Text1,并將所有的文本框清空。</p><p> Private Sub Command4_Click()</p><p><b> …… </b></p><p> Do While Not rs.EOF</p><p> If T
117、ext1.Text = rs.Fields("UserID") Then</p><p> MsgBox "已經(jīng)存在用戶名為 " & Userid & " 的用戶帳號(hào)", vbInformation</p><p> Text1.SetFocus</p><p><b> E
118、xit Sub</b></p><p><b> End If</b></p><p> rs.MoveNext</p><p><b> Loop</b></p><p> rs.Close: Set rs = Nothing</p><p><b
119、> End Sub</b></p><p> 如果沒(méi)有重復(fù),再檢查兩次輸入的密碼是否一致,如果不一致,則提示“兩次密碼不一致”。</p><p> Private Sub Command4_Click()</p><p><b> ……</b></p><p> If Trim(Text3.T
120、ext) <> Trim(Text2.Text) Then</p><p> MsgBox "兩次密碼不相同,請(qǐng)重輸入!", vbOKOnly + 48, "提示:"</p><p> Text2.Text = ""</p><p> Text3.Text = ""&l
121、t;/p><p> Text2.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> 如果以上全部正確無(wú)誤的設(shè)置好了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文---學(xué)生學(xué)籍管理系統(tǒng)
- 畢業(yè)論文范文——學(xué)生學(xué)籍管理系統(tǒng)
- 畢業(yè)論文范文——學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理信息系統(tǒng)畢業(yè)論文
- 學(xué)籍管理系統(tǒng)畢業(yè)論文.doc
- 學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 【畢業(yè)學(xué)位論文】(word原稿)jsp,java學(xué)生學(xué)籍管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文范文——學(xué)籍管理系統(tǒng)
- 畢業(yè)論文范文——學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)論文范文——學(xué)籍管理系統(tǒng) (2)
- 畢業(yè)論文范文——學(xué)籍管理系統(tǒng) (2)
- 學(xué)生學(xué)籍管理系統(tǒng)論文
- 畢業(yè)論文——學(xué)生管理系統(tǒng)
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學(xué)生管理系統(tǒng)
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文 ----學(xué)生管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論