版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要隨著信息化時(shí)代的到來(lái)、城市規(guī)模的不斷擴(kuò)大和人們居住環(huán)境的相對(duì)集中,小區(qū)信息管理已經(jīng)成為小區(qū)日常管理的核心。采用一個(gè)較為實(shí)用的信息管理系統(tǒng)對(duì)小區(qū)的信息進(jìn)行管理、存儲(chǔ)、共享,實(shí)現(xiàn)現(xiàn)代化小區(qū)的智能化管理已是小區(qū)信息系統(tǒng)發(fā)展的主流方向。本文主要從研究?jī)?nèi)容、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)開(kāi)發(fā)與實(shí)現(xiàn)等幾個(gè)方面,詳細(xì)介紹了在Visual Studio.NET 2005環(huán)境下使用C+語(yǔ)言,構(gòu)建河南理工大學(xué)濱河小區(qū)信息管理系統(tǒng)過(guò)程。關(guān)鍵詞:小區(qū)信息管理 ADO技術(shù) Visual C+ 數(shù)據(jù)庫(kù)AbstractWith the advent of the information age, urban-scale
2、growing and people of the relative concentration of the living environment, residential area of information management has become the core of day-to-day management. A more practical use of the information management system to manage the information area, storage, sharing, modernization of the intell
3、igent management area is the area of information management direction of the mainstream of development. This paper studies, system design, database design, system development and implementation of several aspects, described in detail in the Visual Studio.NET 2005 environment using the C + + language
4、, to build Henan University of Science and Technology Cell Binhe process information management system. Keywords: ADO technology Area of information management Visual C+ Database目 錄 TOC o 1-3 h z u HYPERLINK l _Toc233012380 1 緒論 PAGEREF _Toc233012380 h 1 HYPERLINK l _Toc233012381 1.1 選題的背景、目的和意義 PAG
5、EREF _Toc233012381 h 1 HYPERLINK l _Toc233012382 1.2 國(guó)內(nèi)外研究現(xiàn)狀綜述 PAGEREF _Toc233012382 h 1 HYPERLINK l _Toc233012383 1.3 論文研究的思路與內(nèi)容 PAGEREF _Toc233012383 h 2 HYPERLINK l _Toc233012384 2 小區(qū)信息管理系統(tǒng)的內(nèi)容 PAGEREF _Toc233012384 h 3 HYPERLINK l _Toc233012385 2.1系統(tǒng)設(shè)計(jì)原則 PAGEREF _Toc233012385 h 3 HYPERLINK l _Toc
6、233012386 2.2 開(kāi)發(fā)環(huán)境 PAGEREF _Toc233012386 h 3 HYPERLINK l _Toc233012387 2.3開(kāi)發(fā)方式簡(jiǎn)介 PAGEREF _Toc233012387 h 5 HYPERLINK l _Toc233012388 2.3.1 ADO對(duì)象模型 PAGEREF _Toc233012388 h 7 HYPERLINK l _Toc233012389 2.4 系統(tǒng)分析 PAGEREF _Toc233012389 h 11 HYPERLINK l _Toc233012390 2.4.1 可行性分析 PAGEREF _Toc233012390 h 11
7、HYPERLINK l _Toc233012391 2.4.2 需求分析 PAGEREF _Toc233012391 h 12 HYPERLINK l _Toc233012392 2.5 系統(tǒng)功能設(shè)計(jì) PAGEREF _Toc233012392 h 13 HYPERLINK l _Toc233012393 3 數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc233012393 h 16 HYPERLINK l _Toc233012394 3.1 概念結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc233012394 h 16 HYPERLINK l _Toc233012395 3.2 邏輯結(jié)構(gòu)設(shè)計(jì) PAGEREF _T
8、oc233012395 h 18 HYPERLINK l _Toc233012396 3.2.1 數(shù)據(jù)流圖 PAGEREF _Toc233012396 h 20 HYPERLINK l _Toc233012397 3.2.2 數(shù)據(jù)字典 PAGEREF _Toc233012397 h 21 HYPERLINK l _Toc233012398 3.2.3 系統(tǒng)結(jié)構(gòu)圖 PAGEREF _Toc233012398 h 23 HYPERLINK l _Toc233012399 4 系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc233012399 h 24 HYPERLINK l _Toc233012400 4.1
9、ADO 對(duì)象的重新封裝 PAGEREF _Toc233012400 h 24 HYPERLINK l _Toc233012401 4.2 歡迎界面的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc233012401 h 25 HYPERLINK l _Toc233012402 4.3 系統(tǒng)主界面的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc233012402 h 25 HYPERLINK l _Toc233012403 系統(tǒng)窗體模塊組成 PAGEREF _Toc233012403 h 25 HYPERLINK l _Toc233012404 4.4 導(dǎo)航欄的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc233012404
10、h 26 HYPERLINK l _Toc233012405 4.5 用戶登錄窗體的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc233012405 h 28 HYPERLINK l _Toc233012406 4.6 密碼修改功能的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc233012406 h 30 HYPERLINK l _Toc233012407 4.7 注銷(xiāo)功能實(shí)現(xiàn) PAGEREF _Toc233012407 h 30 HYPERLINK l _Toc233012408 4.8 退出系統(tǒng)功能實(shí)現(xiàn) PAGEREF _Toc233012408 h 30 HYPERLINK l _Toc233012409
11、 4.9 業(yè)主信息查詢 PAGEREF _Toc233012409 h 30 HYPERLINK l _Toc233012410 4.10 用戶交費(fèi) PAGEREF _Toc233012410 h 31 HYPERLINK l _Toc233012411 4.11 入住登記功能 PAGEREF _Toc233012411 h 32 HYPERLINK l _Toc233012412 4.12 維修登記功能 PAGEREF _Toc233012412 h 33 HYPERLINK l _Toc233012413 4.13 維修查詢功能 PAGEREF _Toc233012413 h 33 HYP
12、ERLINK l _Toc233012414 4.14 費(fèi)用設(shè)置功能 PAGEREF _Toc233012414 h 34 HYPERLINK l _Toc233012415 5 結(jié)論 PAGEREF _Toc233012415 h 35 HYPERLINK l _Toc233012416 6 參考文獻(xiàn) PAGEREF _Toc233012416 h 36 HYPERLINK l _Toc233012417 7 致謝 PAGEREF _Toc233012417 h 371 緒論1.1 選題的背景、目的和意義隨著中國(guó)經(jīng)濟(jì)持續(xù)穩(wěn)定的高速發(fā)展,大中型城市的城市化水平迅速提高。城市建設(shè)作為中國(guó)經(jīng)濟(jì)發(fā)展
13、的一個(gè)窗口,其住宅小區(qū)管理水平的好壞直接影響到市民的切身利益乃至中國(guó)在世界事務(wù)中的形象。因此,住宅小區(qū)的信息化管理顯得尤其重要,使用戶能夠方便并快速地獲取相關(guān)信息,比如獲取某個(gè)區(qū)的樓盤(pán)信息、某棟樓的房間信息、客戶維修信息,以及繳費(fèi)信息。因此,管理和監(jiān)測(cè)住宅小區(qū),提高住宅小區(qū)的信息管理水平,使得信息化管理真正融入住宅管理,提高城市化水平,既有理論研究意義,又有實(shí)用價(jià)值。該系統(tǒng)主要實(shí)現(xiàn)小區(qū)信息管理的基本功能, 滿足信息系統(tǒng)的科學(xué)化,系統(tǒng)化管理。并準(zhǔn)確地,實(shí)時(shí)地將信息反饋給用戶,以實(shí)現(xiàn)小區(qū)管理的智能化,信息化。1.2 國(guó)內(nèi)外研究現(xiàn)狀綜述根據(jù)在網(wǎng)絡(luò)中進(jìn)行檢索與分析的結(jié)果看,已經(jīng)推出的國(guó)內(nèi)外小區(qū)管理系統(tǒng)
14、為數(shù)不少,產(chǎn)品大多已進(jìn)入成熟期,功能較為完善。當(dāng)今很多系統(tǒng)采用了現(xiàn)代化計(jì)算機(jī)技術(shù)、通信技術(shù)、控制技術(shù)、IC卡技術(shù)來(lái)實(shí)現(xiàn)小區(qū)的管理。使住宅建筑物的結(jié)構(gòu)、設(shè)備、服務(wù)及管理依據(jù)住戶的需要進(jìn)行最優(yōu)化的組合將是房地產(chǎn)業(yè)發(fā)展的必然趨勢(shì)。其中,代美麗和張立通過(guò)結(jié)構(gòu)化設(shè)計(jì)方法實(shí)現(xiàn)小區(qū)物業(yè)的微機(jī)化,信息化,網(wǎng)絡(luò)化管理。同時(shí),結(jié)合理論研究及工程實(shí)踐應(yīng)用,提出物業(yè)管理信息化理論與實(shí)施方法,對(duì)居住小區(qū)物業(yè)管理信息系統(tǒng)進(jìn)行設(shè)計(jì)及應(yīng)用研究。陳家的基于GIS的小區(qū)規(guī)劃管理信息系統(tǒng)的研究,探討了建立基于GIS的區(qū)域規(guī)劃管理信息系統(tǒng)的一般原理、方法、步驟,并對(duì)桌面地圖信息系統(tǒng)MapInfo作了概要的分析;按照系統(tǒng)的要求,詳細(xì)地
15、討論了CPMIS的用戶界面的構(gòu)建,并集成了CPMIS的基礎(chǔ)軟件以支持輸入輸出功能,同時(shí),對(duì)CPMIS的一個(gè)子專題-校園房產(chǎn)管理系統(tǒng)作了詳細(xì)的設(shè)計(jì)和實(shí)現(xiàn)。 全文明,李亞芬和王普的智能小區(qū)信息管理系統(tǒng)的研究,通過(guò)對(duì)當(dāng)前智能化需求的分析,提出了web開(kāi)發(fā)技術(shù)與LonWorks技術(shù)結(jié)合的智能小區(qū)管理系統(tǒng)的整體構(gòu)架方案。硬件上應(yīng)用神經(jīng)元Neuron芯片和LonTalk協(xié)議完成信號(hào)的采集和控制;在軟件上使用JSP、XML、SQL技術(shù)構(gòu)建了服務(wù)器瀏覽器模式的智能小區(qū)管理平臺(tái),并對(duì)系統(tǒng)的功能進(jìn)行了簡(jiǎn)要地說(shuō)明。1.3 論文研究的思路與內(nèi)容本次設(shè)計(jì)擬通過(guò)查閱文獻(xiàn)資料,在分析、歸納、總結(jié)已有小區(qū)信息管理方法與技術(shù)的
16、基礎(chǔ)上,在Visual Studio.NET2005環(huán)境下,利用C+語(yǔ)言,利用ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)和Access數(shù)據(jù)庫(kù)構(gòu)建河南理工大學(xué)濱河小區(qū)信息管理系統(tǒng),從而實(shí)現(xiàn)小區(qū)管理的信息化、科學(xué)化。2 小區(qū)信息管理系統(tǒng)的內(nèi)容2.1 系統(tǒng)設(shè)計(jì)原則(1) 安全性、完備性、一致性小區(qū)信息管理系統(tǒng)旨在以提高小區(qū)信息管理的高效性為背景,演示數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),因而要充分考慮數(shù)據(jù)庫(kù)的安全性、完備性、一致性。(2) 擴(kuò)充性、靈活性、簡(jiǎn)便性小區(qū)信息管理系統(tǒng)是為了節(jié)約小區(qū)管理的人力資源,提高小區(qū)管理的工作效率,因而應(yīng)當(dāng)簡(jiǎn)單易用,靈活方便。2.2 開(kāi)發(fā)環(huán)境本次畢業(yè)設(shè)計(jì),擬在Visual Studio.NET 2005
17、環(huán)境下使用C+語(yǔ)言,利用ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)和Access數(shù)據(jù)庫(kù)構(gòu)建河南理工大學(xué)濱河小區(qū)信息管理系統(tǒng)。C+語(yǔ)言是擁有著優(yōu)良傳統(tǒng)的程序語(yǔ)言,Visual C+則是以C+語(yǔ)言為基礎(chǔ)來(lái)開(kāi)發(fā)程序的一套功能強(qiáng)大的工具,雖然Visual C+也有缺點(diǎn),但Visual C+在程序開(kāi)發(fā)上具有“絕對(duì)”的優(yōu)勢(shì)。Visual C+是當(dāng)今較為流行的系統(tǒng)級(jí)開(kāi)發(fā)語(yǔ)言之一,它能與Microsoft公司的操作系統(tǒng)無(wú)縫結(jié)合,開(kāi)發(fā)出高性能的Windows應(yīng)用程序。Visual C+不僅是一個(gè)C+編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開(kāi)發(fā)環(huán)境(integrated development environment,
18、IDE)。Visual C+由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開(kāi)發(fā)工具。 這些組件通過(guò)一個(gè)名為Developer Studio的組件集成為和諧的開(kāi)發(fā)環(huán)境。SQL(Structured Query Language,結(jié)構(gòu)查詢語(yǔ)言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)語(yǔ)言。SQL通常使用于數(shù)據(jù)庫(kù)的通訊。ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))聲稱,SQL是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句通常用于完成一些數(shù)據(jù)庫(kù)的操作任務(wù),比如在數(shù)據(jù)庫(kù)中更新數(shù)據(jù),或者從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。使用SQL的常見(jiàn)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、 Sybase、 Microsof
19、t SQL Server、 Access、 Ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的SQL命令,比如Select、 Insert、 Update、 Delete、 Create和 Drop常常被用于完成絕大多數(shù)數(shù)據(jù)庫(kù)的操作。MS SQL Server 就是用的Transact-SQL。SQL語(yǔ)言有著非常突出的優(yōu)點(diǎn),主要是:非過(guò)程化語(yǔ)言、統(tǒng)一的語(yǔ)言、是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言非過(guò)程化語(yǔ)言:SQL是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行
20、操作,可操作記錄集,所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法, 這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。統(tǒng)一的語(yǔ)言:SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而
21、SQL 將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言:由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫(xiě)的程序都是可以移植的。2.3 開(kāi)發(fā)方式簡(jiǎn)介目前前臺(tái)應(yīng)用程序與數(shù)據(jù)庫(kù)的連接大至采用以下幾種方法:(1) ODBC(Open DataBase Connectivity) ODBC是客戶應(yīng)用程序訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)時(shí)提供的一個(gè)統(tǒng)一的接口,對(duì)于不同的數(shù)據(jù)庫(kù),ODBC提供了一套統(tǒng)一的API,使應(yīng)用程序可以應(yīng)用所提供的API來(lái)訪問(wèn)任何提供了ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)。而且,ODBC已經(jīng)成為一種標(biāo)準(zhǔn),所以,目前所有
22、的關(guān)系數(shù)據(jù)庫(kù)都提供了ODBC驅(qū)動(dòng)程序,這使ODBC的應(yīng)用非常廣泛,基本上可用于所有的關(guān)系數(shù)據(jù)庫(kù)。但由于ODBC只能用于關(guān)系數(shù)據(jù)庫(kù),使得利用ODBC很難訪問(wèn)對(duì)象數(shù)據(jù)庫(kù)及其它非關(guān)系數(shù)據(jù)庫(kù)。由于ODBC是一種底層的訪問(wèn)技術(shù),因些,ODBC API可以使客戶應(yīng)用程序能夠從底層設(shè)置和控制數(shù)據(jù)庫(kù),完成一些高層數(shù)據(jù)庫(kù)技術(shù)無(wú)法完成的功能。(2) DAO(Data Access Object) DAO提供了一種通過(guò)程序代碼創(chuàng)建和操縱數(shù)據(jù)庫(kù)的機(jī)制。多個(gè)DAO構(gòu)成一個(gè)體系結(jié)構(gòu),在這個(gè)結(jié)構(gòu)中,各個(gè)DAO對(duì)象協(xié)同工作。MFC DAO是微軟提供的用于訪問(wèn)Microsoft Jet數(shù)據(jù)庫(kù)文件(*.mdb)的強(qiáng)有力的數(shù)據(jù)庫(kù)開(kāi)
23、發(fā)工具,它通過(guò)DAO的封裝,向程序員提供了DAO豐富的操作數(shù)據(jù)庫(kù)手段。 (3) OLEDB(Object Linkand Embedding DataBase) OLEDB是Visual C+開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用中提供的新技術(shù),它基于COM接口。因此,OLEDB對(duì)所有的文件系統(tǒng)包括關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)都提供了統(tǒng)一的接口。這些特性使得OLEDB技術(shù)比傳統(tǒng)的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)更加優(yōu)越。與ODBC技術(shù)相似,OLEDB屬于數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)中的底層接口。直接使用OLEDB來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序需要大量的代碼。在VC中提供了ATL模板,用于設(shè)計(jì)OLEDB數(shù)據(jù)應(yīng)用程序和數(shù)據(jù)提供程序。 (4) ADO(ActiveX
24、Data Object) ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對(duì)象)是Microsoft提出的應(yīng)用程序接口(API)用以實(shí)現(xiàn)訪問(wèn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。例如,如果您希望 編寫(xiě)應(yīng)用程序從DB2或Oracle數(shù)據(jù)庫(kù)中向網(wǎng)頁(yè)提供數(shù)據(jù),可以將ADO程序包括在作為活動(dòng)服務(wù)器頁(yè)(ASP)的HTML文件中。當(dāng)用戶從網(wǎng)站請(qǐng)求網(wǎng)頁(yè)時(shí),返回的網(wǎng)頁(yè)也包括了數(shù)據(jù)中的相應(yīng)數(shù)據(jù),這些是由于使用了ADO代碼的結(jié)果。像Microsoft的其它系統(tǒng)接口一樣,ADO是面向?qū)ο蟮?。它是Microsoft全局?jǐn)?shù)據(jù)訪問(wèn)(UDA)的一部分,Microsoft認(rèn)為與其自己創(chuàng)建一個(gè)數(shù)據(jù),不如利用UDA訪問(wèn)
25、已有的數(shù)據(jù)庫(kù)。為達(dá)到這一目的,Microsoft和其它數(shù)據(jù)庫(kù)公司在它們的數(shù)據(jù)庫(kù)和Microsoft的OLE數(shù)據(jù)庫(kù)之間提供了一個(gè)“橋”程序,OLE數(shù)據(jù)庫(kù)已經(jīng)在使用ADO技術(shù)。ADO的一個(gè)特征(稱為遠(yuǎn)程數(shù) 據(jù)服務(wù))支持網(wǎng)頁(yè)中的數(shù)據(jù)相關(guān)的ActiveX控件和有效的客戶端緩沖。作為ActiveX的一部分,ADO也是Microsoft的組件對(duì)象模式 (COM)的一部分,它的面向組件的框架用以將程序組裝在一起。ADO從原來(lái)的Microsoft數(shù)據(jù)接口遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)而來(lái)。RDO與ODBC一起工作訪問(wèn)關(guān)系數(shù)據(jù)庫(kù),但不能訪問(wèn)如ISAM和VSAM的非關(guān)系數(shù)據(jù)庫(kù)。ADO是對(duì)當(dāng)前微軟所支持的數(shù)據(jù)庫(kù)進(jìn)行操作的最
26、有效和最簡(jiǎn)單直接的方法,它是一種功能強(qiáng)大的數(shù)據(jù)訪問(wèn)編程模式,從而使得大部分?jǐn)?shù)據(jù)源可編程的屬性得以直接擴(kuò)展到你的Active Server頁(yè)面上??梢允褂肁DO去編寫(xiě)緊湊簡(jiǎn)明的腳本以便連接到Open Database Connectivity(ODBC)兼容的數(shù)據(jù)庫(kù)和OLEDB兼容的數(shù)據(jù)源,這樣ASP程序員就可以訪問(wèn)任何與ODBC兼容的數(shù)據(jù)庫(kù),包括MS SQL SERVER、Access、 Oracle等等。比如,如果網(wǎng)站開(kāi)發(fā)人員需要讓用戶通過(guò)訪問(wèn)網(wǎng)頁(yè)來(lái)獲得存在于IBM DB2或者Oracle數(shù)據(jù)庫(kù)中的數(shù)據(jù),那么就可以在ASP頁(yè)面中包含ADO程序,用來(lái)連接數(shù)據(jù)庫(kù)。于是,當(dāng)用戶在網(wǎng)站上瀏覽網(wǎng)頁(yè)時(shí),
27、返回的網(wǎng)頁(yè)將會(huì)包含 從數(shù)據(jù)庫(kù)中獲取的數(shù)據(jù)。而這些數(shù)據(jù)都是由ADO代碼做到的。ADO是一種面向?qū)ο蟮木幊探涌冢④浗榻B說(shuō),與其同IBM和Oracle提倡的那樣,創(chuàng)建一個(gè)統(tǒng)一數(shù)據(jù)庫(kù),不如提供一個(gè)能夠訪問(wèn)不同數(shù)據(jù)庫(kù)的統(tǒng)一接口,這樣會(huì)更加實(shí)用一些。為實(shí)現(xiàn)這一目標(biāo),微軟在數(shù)據(jù)庫(kù)和微軟的OLEDB中提供了一種“橋”程序,這種程序能夠提供對(duì)數(shù)據(jù)庫(kù)的連接。開(kāi)發(fā)人員在使用ADO時(shí),其實(shí)就是在使用OLEDB,不過(guò)OLEDB更加接近底層。ADO的一項(xiàng)遠(yuǎn)程數(shù)據(jù)服務(wù),支持“數(shù)據(jù)倉(cāng)庫(kù)”ActiveX 組件以及高效的客戶端緩存。作為ActiveX的一部分,ADO也是COM組件的一部分。ADO是由早期的遠(yuǎn)程數(shù)據(jù)對(duì)象RDO演化
28、而來(lái)的。RDO同微軟的ODBC一同連接關(guān)系數(shù)據(jù)庫(kù),不過(guò)不能連接非關(guān)系數(shù)據(jù)庫(kù)。ADO向我們提供了一個(gè)熟悉的,高層的對(duì)OLEDB的Automation封裝接口。對(duì)那些熟悉RDO的程序員來(lái)說(shuō),你可以把OLEDB比作是ODBC驅(qū)動(dòng)程序。如同RDO對(duì)象是ODBC驅(qū)動(dòng)程序接口一樣,ADO對(duì)象是OLEDB的接口;如同不同的數(shù)據(jù)庫(kù)系統(tǒng)需要它們自己的ODBC驅(qū)動(dòng)程序一樣,不同的數(shù)據(jù)源要求它們自己的OLEDB提供者(OLEDB provider)。2.3.1 ADO對(duì)象模型 ADO對(duì)象模型定義了一組可以編程對(duì)象,可以實(shí)現(xiàn)OLEDB的幾乎所有的功能。ADO對(duì)象模型中包含了7個(gè)對(duì)象:Connection對(duì)象、Comm
29、and對(duì)象、Parameter對(duì)象、Recordset對(duì)象、Field對(duì)象、Property對(duì)象、Error對(duì)象。ADO對(duì)象模型中還包含了3個(gè)集合:Fields集合、Properties集合、Errors集合。它們之間的關(guān)系如圖2.1所示:圖 2.1 ADO對(duì)象模型Fig.2.1 ADO Object Model(1) Connection對(duì)象 Connection對(duì)象用來(lái)與數(shù)據(jù)源建立連接、執(zhí)行查詢以及建立事務(wù)處理。在建立連接之前,必須指定使用哪一個(gè)OLEDB供應(yīng)者。如果Provider屬性設(shè)為空串,那么連接采用缺省的OLEDB供應(yīng)者。也可以設(shè)置Connection對(duì)象的Conenection
30、String屬性來(lái)間接設(shè)置Provider屬性。例如按下面語(yǔ)句設(shè)置 ConenectionString屬性后,OLEDB供應(yīng)者會(huì)是Microsoft OLEDB Provider For SQL Server。可以用Conenection進(jìn)行事務(wù)處理。在事務(wù)處理方面,conenection對(duì)象提供了三個(gè)方法: BeginTrans、CommitTrans和RollbackTrans。在數(shù)據(jù)修改之前,用BeginTrans方法開(kāi)始事務(wù)處理,當(dāng)數(shù)據(jù)修改以后,可以用CommitTrans方法提交事務(wù),或者用RollbackTrans方法加滾事務(wù)。(2) Command對(duì)象Command對(duì)象執(zhí)行數(shù)據(jù)庫(kù)
31、操作命令,這些命令并不只限于查詢串,而是依賴于數(shù)據(jù)庫(kù)的OLEDB供應(yīng)者。以下的討論假定使用ODBC供應(yīng)者。使用Command對(duì)象可以建立一個(gè)新的連接,也可以使用當(dāng)前已經(jīng)建立的連接,這取決于對(duì)象ActiveConection屬性的設(shè)置。如果Activeconection屬性被設(shè)置為一個(gè)Connection對(duì)象的引用,那么Command對(duì)象就建立一個(gè)新的連接,并使用這個(gè)新連接。每個(gè)Connection對(duì)象可以包含多個(gè)Command對(duì)象。 用Command對(duì)象執(zhí)行一個(gè)查詢子串,可以返回一個(gè)記錄集,也可以返回多個(gè)記錄集,甚至可以不返回記錄集。對(duì)象的CommandText屬性中包含了要執(zhí)行的查詢字串。一
32、個(gè)查詢可以是一個(gè)標(biāo)準(zhǔn)的SQL數(shù)據(jù)操作語(yǔ)言,如SELECT、DELETE、UPDATE等;也可以是任何數(shù)據(jù)定義語(yǔ)言,如CREATE、DROP等;還可以是一個(gè)存儲(chǔ)過(guò)程或一個(gè)表。究竟CommandText中是哪一種查詢字串,由對(duì)象的CommandType屬性決定。CommandType屬性有四種不同的值:adCmdText,adCmdTable,adCmdStoreProc和adCmdUnknow。如果查詢字串是一個(gè)SQL語(yǔ)句,那么CommandType屬性應(yīng)設(shè)為adCmdText;如果查詢字串是一個(gè)存儲(chǔ)過(guò)程的名字,那么CommandType屬性應(yīng)該為adCmdStoreProc,Command對(duì)象
33、用call procedure=name的形式來(lái)執(zhí)行一個(gè)存儲(chǔ)過(guò)程;如果查詢字串是一個(gè)表名,那么CommandType屬性應(yīng)該設(shè) 為adCmdTable,Command對(duì)象用Select * from Tablename的形式來(lái)執(zhí)行一個(gè)查詢;如果CommandType屬性被設(shè)置為adCmdUnknown,Command對(duì)象必須執(zhí)行一些額外的步驟來(lái)決定查詢字串的類型,這樣會(huì)降低系統(tǒng)的性能。 如果要執(zhí)行一個(gè)帶參數(shù)的查詢,或者要執(zhí)行一個(gè)查詢?nèi)舾纱危敲纯梢杂肅ommand對(duì)象的Prepared屬性預(yù)先建立一個(gè)查詢字串。(3) Parameters集合和Parameter對(duì)象 Parameters集合和
34、Parameter對(duì)象為Command對(duì)象提供參數(shù)信息和數(shù)據(jù)。當(dāng)且僅當(dāng)Command對(duì)象執(zhí)行的查詢是一個(gè)帶參數(shù)的查詢時(shí),Parameters集合和Parameter對(duì)象才有用,Parameter對(duì)象包含在Parameters集合中。Parameter對(duì)象中可以包含4種類型的參數(shù):輸入、輸出、輸入輸出和返回值類型。 用Command對(duì)象的CreateParameter方法來(lái)創(chuàng)建一個(gè)Parameter對(duì)象,Createparameter方法的語(yǔ)法如下,5個(gè)參數(shù)分別是:參數(shù)名、參數(shù)的數(shù)據(jù)類型、參數(shù)類型(輸入輸出等)、參數(shù)的長(zhǎng)度和參數(shù)的值。(4) Recordset對(duì)象 Recordset對(duì)象用來(lái)操作
35、查詢返回的結(jié)果集,它可以在結(jié)果集中添加、刪除、修改和移動(dòng)記錄。當(dāng)創(chuàng)建了一個(gè) Recordset對(duì)象時(shí),一個(gè)游標(biāo)也被自動(dòng)創(chuàng)建了。可以用Recordset對(duì)象的CursorType屬性來(lái)設(shè)置游標(biāo)的類型。游標(biāo)的類型有4種:僅能向前移動(dòng)的游標(biāo)、靜態(tài)的游標(biāo)、鍵集游標(biāo)和動(dòng)態(tài)游標(biāo)。這已經(jīng)在DAO中的Recordset對(duì)象和RDO的rdoResultset對(duì)象中介紹過(guò)了。 (5) Fields集合和Field對(duì)象 Fields集合和Field對(duì)象用來(lái)訪問(wèn)當(dāng)前記錄中的每一列的數(shù)據(jù),可以用Fields對(duì)象創(chuàng)建一個(gè)新記錄、修改已存在的數(shù)據(jù)等。用Recordset對(duì)象的AddNew、Update和UpdateBatc
36、h方法來(lái)添加新記錄和更新記錄。也可以用Fields對(duì)象來(lái)訪問(wèn)表中每一個(gè)字段的一些屬性,如下面的例子循環(huán)打印出表中當(dāng)前記錄的字段名稱、類型和值。(6) Properties集合和Property對(duì)象 ADO對(duì)象有兩種類型的屬性:一種是內(nèi)置的,另一種是動(dòng)態(tài)的。內(nèi)置的屬性不出現(xiàn)在對(duì)象的Properties集合中,而動(dòng)態(tài)的屬性是由OLEDB供應(yīng)者定義的,它們出現(xiàn)在相應(yīng)的ADO對(duì)象的Properties集合中。Connection、Command、Recordset和Field對(duì)象包含有Properties集合,Properties集合中包含了Property對(duì)象,它們負(fù)責(zé)提供四個(gè)對(duì)象的特征信息。Pro
37、perty對(duì)象只有一個(gè)Attributes屬性,這個(gè)屬性描述了某個(gè)特定屬性是否被OLEDB供應(yīng)者支持,或者是否必須賦值,或者是否能讀寫(xiě)。Property對(duì)象的另外三個(gè)屬性為Name、Type和Value,分別表示 Property對(duì)象所描述的ADO對(duì)象的屬性名稱、數(shù)據(jù)類型和屬性值。 目前在VC應(yīng)用的比較多的是ODBC和ADO,ADO向VC程序員提供了很多好處。包括易于使用,熟悉的界面,高速度以及較低的內(nèi)存占用。所以本次畢業(yè)設(shè)計(jì)將使用ADO去完成與數(shù)據(jù)庫(kù)的連接。 2.4 系統(tǒng)分析 可行性分析1.經(jīng)濟(jì)可行性該小區(qū)信息管理系統(tǒng)能夠幫助使小區(qū)的管理更加智能化、信息化、合理化、規(guī)范化。系統(tǒng)投資少,實(shí)用性
38、強(qiáng),具有較好的社會(huì)效益和經(jīng)濟(jì)效益,具有很好的經(jīng)濟(jì)可行性。2.技術(shù)可行性該小區(qū)信息管理系統(tǒng)應(yīng)用ADO技術(shù)。與其他資料存取元件相比,ADO.NET提供了數(shù)項(xiàng)優(yōu)點(diǎn)。這些優(yōu)點(diǎn)可分類如下:(1)互通性 ADO.NET應(yīng)用程式可善加利用XML的彈性及其廣泛接受度。由于XML是在網(wǎng)路上傳送資料集的格式,因此任何可讀取XML格式的元件都能夠處理資料。(2)可維護(hù)性 在部署系統(tǒng)的存留周期當(dāng)中,可能會(huì)對(duì)系統(tǒng)稍作變更,但卻很少嘗試進(jìn)行本質(zhì)與架構(gòu)的變更,原因是這些變更的困難度極高。例如,當(dāng)部署的應(yīng)用程式有愈來(lái)愈多的使用者時(shí),逐漸增加的效能負(fù)載就可能需要架構(gòu)性的變更。隨著部署應(yīng)用程式伺服器的效能負(fù)載逐漸增加,系統(tǒng)資源可
39、能變得不足,而且回應(yīng)時(shí)間或輸送量也可能會(huì)受到影響。面對(duì)這個(gè)問(wèn)題,軟體設(shè)計(jì)人員可選擇將伺服器的商務(wù)邏輯處理與使用者介面處理分散到不同機(jī)器上的不同層當(dāng)中。實(shí)際上,應(yīng)用程式伺服器層是以兩層來(lái)取代,以緩解系統(tǒng)資源的不足。這問(wèn)題是要在應(yīng)用程式部署之后增加層數(shù)。如果原始應(yīng)用程式是在 ADO.NET中使用資料集實(shí)作,這樣的轉(zhuǎn)換就容易進(jìn)行。 3.操作可行性系統(tǒng)基于Visual C+.NET環(huán)境平臺(tái)開(kāi)發(fā)的,界面友好,可操作性強(qiáng)。 需求分析小區(qū)信息管理系統(tǒng)的最終用戶包括管理員和業(yè)主。從這兩個(gè)不同的用戶視角出發(fā),通過(guò)對(duì)相關(guān)物業(yè)管理部門(mén)的咨詢和調(diào)研,得出用戶的下列需求。一、小區(qū)信息管理系統(tǒng)的基本信息(1)用戶的基本信
40、息本系統(tǒng)需要登錄授權(quán)方可使用,所以每位用戶設(shè)有用戶名稱,用戶密碼,并設(shè)用戶級(jí)別表示該用戶的身份,系統(tǒng)根據(jù)用戶的身份為用戶開(kāi)放相應(yīng)功能。提供可訪問(wèn)資源。(2)樓房的基本信息小區(qū)管理普遍以樓房為單位進(jìn)行管理,各樓房設(shè)置唯一的ID號(hào),對(duì)應(yīng)一個(gè)名稱。此處還應(yīng)具有房間總數(shù),樓層數(shù)等基本信息。(3)業(yè)主的基本信息每個(gè)業(yè)主設(shè)置唯一ID號(hào),此處還應(yīng)具有姓名、姓別、電話、身份證號(hào)、所住房間等基本信息。二、用戶對(duì)系統(tǒng)的要求(1)管理員信息要求:管理員能夠查詢、統(tǒng)計(jì)所有的空房信息,業(yè)主的基本信息、業(yè)主的交費(fèi)信息、業(yè)主的維修申請(qǐng)。處理要求:管理員應(yīng)能夠維護(hù)所有的樓房和房間信息。能夠查詢和設(shè)置所有房間的費(fèi)用,有新的業(yè)主
41、入住,應(yīng)能添加該業(yè)主的信息,有業(yè)主搬出應(yīng)能刪除其信息。管理員應(yīng)能夠設(shè)置所有房間所需交納的物業(yè)管理等相關(guān)費(fèi)用。管理員應(yīng)能夠修改其登陸密碼。(2)用戶信息要求:用戶能夠修自己的個(gè)人信息,可以進(jìn)行維修申請(qǐng)。處理要求:用戶應(yīng)能夠修改其登陸密碼。三、安全性與完整性要求(1)安全性要求系統(tǒng)應(yīng)設(shè)置訪問(wèn)用戶的標(biāo)識(shí)以鑒別是否是合法用戶,并要求合法用戶設(shè)置其密碼,保證用戶身份不被盜用。系統(tǒng)應(yīng)對(duì)不同的數(shù)據(jù)設(shè)置不同的訪問(wèn)級(jí)別,限制訪問(wèn)用戶可查詢和處理數(shù)據(jù)的類別和內(nèi)容,管理員不得修改房間號(hào)、樓房號(hào)等這些唯一標(biāo)識(shí)信息主體的字段。系統(tǒng)應(yīng)對(duì)不同用戶設(shè)置不同的權(quán)限,區(qū)分不同的用戶。(2)完整性要求各種信息記錄的完整性,信息記錄
42、內(nèi)容不能為空;各種數(shù)據(jù)間聯(lián)系的正確性;相同的數(shù)據(jù)在不用記錄中的一致性。四、系統(tǒng)功能需求(1)業(yè)主可以維護(hù)和修改自己的個(gè)人信息、提出維修申請(qǐng)、查詢每月自己的費(fèi)用交納情況。(2)管理員可以接受用戶的居住申請(qǐng)、退房申請(qǐng),增加新的樓房、房間。設(shè)置每戶每月應(yīng)交納的費(fèi)用。查詢業(yè)主信息、房間信息、樓房的入住情況。2.5 系統(tǒng)功能設(shè)計(jì)濱河小區(qū)信息管理系統(tǒng)主要包括以下幾個(gè)模塊?;緮?shù)據(jù)維護(hù)模塊:基本數(shù)據(jù)維護(hù)模塊提供了增加和刪除樓房、房間、住房的途徑?;緲I(yè)務(wù)模塊:基本業(yè)務(wù)模塊主要用于實(shí)現(xiàn)入住、退房和交納費(fèi)用等相關(guān)功能。數(shù)據(jù)庫(kù)管理模塊:數(shù)據(jù)庫(kù)管理模塊主要用于對(duì)業(yè)主的個(gè)人信息、樓房、房間等相關(guān)信息的管理。信息查詢模
43、塊:信息查詢模塊主要用于查詢業(yè)主信息、房間信息、應(yīng)交費(fèi)用和房屋的入住情況。各模塊的劃分及功能如下圖:圖2.2 系統(tǒng)功能結(jié)構(gòu) Fig.2.2 System Function Structure圖2.3 基本數(shù)據(jù)維護(hù)模塊功Fig.2.3 Basic Data Mantainace module 圖 2.4 基本業(yè)務(wù)模塊功能 Fig.2.4 Basic Transaction module 圖 2.5 數(shù)據(jù)庫(kù)管理模塊功能 Fig.2.5 DataBase ManageMent module 圖 2.6 信息查詢模塊功能 Fig.2.6 Information Query module3 數(shù)據(jù)庫(kù)設(shè)計(jì)3
44、.1 概念結(jié)構(gòu)設(shè)計(jì)小區(qū)信息管理系統(tǒng)中的實(shí)體有:房產(chǎn)區(qū)域、樓房、房間、業(yè)主。下圖為它們所對(duì)應(yīng)的E-R模型。圖3.1 區(qū)域?qū)嶓w的屬性 Fig. 3.1 Zones properties entities 圖3.2 樓房實(shí)體的屬性 Fig. 3.2 Assets properties entities 圖3.3 系統(tǒng)用戶實(shí)體的屬性Fig. 3.3 System users properties圖3.4 房間實(shí)體的屬性Fig.3.4 Houses properties entities 圖3.5 維修實(shí)體的屬性 Fig. 3.5 Maintenance of the properties of ent
45、ities 圖3.6 交費(fèi)實(shí)體的屬性 Fig. 3.6 HandFares properties圖3.7 住戶實(shí)體的屬性 Fig. 3.7 Householders attributes 圖3.8 總體E-R圖 Overall E-R diagram 3.2 邏輯結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實(shí)現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。邏輯結(jié)構(gòu)設(shè)計(jì)的目標(biāo)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為特定的DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。依據(jù)上述概念結(jié)構(gòu)設(shè)計(jì)的結(jié)果,本系統(tǒng)數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)如下:表
46、3.1 用戶表Tab.3.1 User Table名稱數(shù)據(jù)類型大小主鍵是否允許為空NameVarchar10PassWordvarchar10Scaleint4LastLogTimevarchar20表 3.2 業(yè)主表Tab.3.2 Table Owners名稱數(shù)據(jù)類型大小主鍵是否允許為空OwnerIDVarchar5NameVarchar20SexBit1AgeInt4MobilephonVarchar25表3.3 住房表Tab.3.3 Housing Table名稱數(shù)據(jù)類型大小主鍵是否允許為空HouseIDOwnerIDVarcharVarchar55AssetNameVarchar20S
47、tatusbit1表 3.4 資產(chǎn)表Tab.3.4 Assets名稱數(shù)據(jù)類型大小主鍵是否允許為空Z(yǔ)oneNameVarchar20AssetNameVarchar20AssetFareint4RemarksVarchar255表 3.5 區(qū)域表Tab.3.5 Regional Table名稱數(shù)據(jù)類型大小主鍵是否允許為空Z(yǔ)oneNameVarchar20RemarksVarchar255表 3.6 交費(fèi)表Tab.3.6 Payment table名稱數(shù)據(jù)類型大小主鍵是否允許為空FareTypeHanderNamereceiverNameVarcharVarcharVarchar31010Hous
48、eIDMoneryVarcharint54CleFareTimeVarchar20表 3.7 維修表Tab.3.7 Maintenance schedules名稱數(shù)據(jù)類型大小主鍵是否允許為空AssetNameHouseIDVarcharVarchar55MaintainInfoVarchar255TimeVarchar20表 3.8 居住表Tab.3.8 Living table名稱數(shù)據(jù)類型大小主鍵是否允許為空HouseIDVarchar5OwnerIDVarchar20Timevarchar20 數(shù)據(jù)流圖根據(jù)本系統(tǒng)的基本信息要求和處理要求,從管理員的角度得出如下數(shù)據(jù)流圖。 圖 3.9 管理員
49、視角的數(shù)據(jù)流圖Fig.3.9 Administrator perspective of data flow diagram從用戶角度得出如下數(shù)據(jù)流圖。 圖 3.10 用戶視角的數(shù)據(jù)流圖 Fig.3.10 User perspective of data flow diagram 數(shù)據(jù)字典數(shù)據(jù)字典是本系統(tǒng)涉及的數(shù)據(jù)的詳盡描述,是進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的依據(jù),下面是依據(jù)數(shù)據(jù)流圖寫(xiě)出的本系統(tǒng)的數(shù)據(jù)字典。(1)數(shù)據(jù)項(xiàng)表 3.9 數(shù)據(jù)項(xiàng)Tab.3.9 Data item字段名類型長(zhǎng)度備注ZoneNamevarchar10區(qū)域名稱AssetNamevarchar10樓房名稱AssetFareint4房間費(fèi)用Hou
50、seIDvarchar5房間IDOwnerIDvarchar5業(yè)主IDFareClearedbit1交費(fèi)標(biāo)志RepairMsgvarchar255維修信息OwnerNamevarchar10業(yè)主名字OwnerIDvarchar5業(yè)主IDSexbit1性別Ageint4年齡Jobvarchar30職業(yè)Mobilephonevarchar20手機(jī)號(hào)碼PassWordvarchar10密碼UserNamevarchar10用戶名Scaleint4用戶級(jí)別LastLoginTimevarchar20上次登陸時(shí)間RemarksVarchar255備注Statusbit1房屋是否為空(2)數(shù)據(jù)結(jié)構(gòu)表 3.
51、10 數(shù)據(jù)結(jié)構(gòu)Tab.3.10 Data Structure表名表內(nèi)字段AssetZoneAssetHouseOwnerSysUserHandFareMaintainResideZoneName,RemarksZoneName,AssetName,AssetFare,RemarksHouseID,AssetName,StatusOwnerID,Name,Sex,Age,Job,Mobilephone,Name,PassWord,Scale,LastLoginTimeHouseID, Money,ClearFareTimeAssetName,HouseID, MaintainInfo, Time
52、HouseID,OwnerID,Time 系統(tǒng)結(jié)構(gòu)圖圖 3.11 業(yè)主請(qǐng)求服務(wù)的用例圖Fig.3.11 HouseHoldsuse case diagram 圖 3.12 管理員處理相關(guān)事務(wù)的用例圖 Fig.3.12 Adminsters use case diagram4 系統(tǒng)實(shí)現(xiàn)4.1 ADO 對(duì)象的重新封裝為了使用上的方便,在程序的設(shè)計(jì)過(guò)程中對(duì)操作數(shù)據(jù)庫(kù)的Ado 對(duì)象進(jìn)行了重新封裝,建立了CAdoConn類。CAdoConn類的類圖如下所示:圖 4.1 CadoConn 設(shè)計(jì) Fig.4.1 CAdoConn Design(1)相關(guān)成員變量介紹_ConnectionPtr m_pConn
53、ection;ADO 中的Connection對(duì)象,主要用于數(shù)據(jù)庫(kù)的連接和打開(kāi)。_RecordsetPtr m_pRecordset;ADO 中的Recordset對(duì)象,主要用于記錄集的獲取和存儲(chǔ)。相關(guān)函數(shù)的功能介紹如下:void InitAdoConnection();/初始化數(shù)據(jù)庫(kù)連接void CheckConnect();/檢測(cè)數(shù)據(jù)庫(kù)連接,如果已斷開(kāi)則重新建立連接。int GetCount(CString tableName);/返回?cái)?shù)據(jù)庫(kù)中指定表的記錄個(gè)數(shù)。_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);/根據(jù)提供的SQL語(yǔ)句返回結(jié)果記錄集。B
54、OOL ExcuteSQL(_bstr_t bstrSQL);/執(zhí)行提供的SQL語(yǔ)句,并返回執(zhí)行的狀態(tài)。void ExitConnect();/斷開(kāi)已數(shù)據(jù)庫(kù)的連接。(2)使用方法在需要與數(shù)據(jù)庫(kù)進(jìn)行交互的地方,聲明一個(gè)CAdoConn類型的一個(gè)變量。然構(gòu)造相應(yīng)的SQL語(yǔ)句交由其執(zhí)行即可。4.2 歡迎界面的設(shè)計(jì)與實(shí)現(xiàn)在應(yīng)用程序初始化的過(guò)程中,將會(huì)創(chuàng)建一定時(shí)器并同時(shí)顯示一對(duì)話框,對(duì)話框中加入一圖片控件,并調(diào)整圖片控件和其父對(duì)話框等大小。通過(guò)設(shè)置定時(shí)器定時(shí)信息發(fā)送間隔的長(zhǎng)短,即可控制對(duì)話框顯示的時(shí)間。顯示完畢后銷(xiāo)毀定時(shí)器和對(duì)話框。 圖 4.2 啟動(dòng)畫(huà)面 Start screen4.3 系統(tǒng)主界面的設(shè)計(jì)
55、與實(shí)現(xiàn) 系統(tǒng)窗體模塊組成系統(tǒng)的窗體大至可分為三大部分,左邊的導(dǎo)航欄、右邊的顯示視圖和顯示視圖中嵌入的功能子對(duì)話框。當(dāng)用戶單擊左邊的導(dǎo)航欄視圖項(xiàng)時(shí),將會(huì)展開(kāi)相應(yīng)的子項(xiàng)。當(dāng)用戶雙擊展開(kāi)的子項(xiàng)時(shí),左邊視圖將會(huì)發(fā)送相應(yīng)的消息去通知視圖銷(xiāo)毀上一個(gè)顯示窗體,連接數(shù)據(jù)庫(kù),并顯示新的窗體。顯示窗體的顯示方式和位置均有視圖類進(jìn)行控制。 圖 4.3 系統(tǒng)窗體模塊組成圖 Fig.4.3 System module diagram form4.4 導(dǎo)航欄的設(shè)計(jì)與實(shí)現(xiàn)整個(gè)導(dǎo)航欄由四個(gè)層次疊加而成,依次為CDockBar,CDialog,CListView,CListView。CDockBar已被MFC所封裝,使用極為方
56、便。為了方便控件的放置,又加入了一個(gè)Dialog,Dialog直接放置在DockBar之上,并動(dòng)態(tài)調(diào)整,使它們大小相同。在Dialogue之上放置的是CListView用于顯示自定義按鈕。在上下兩組按鈕之間置的是第二個(gè)CListView,用于動(dòng)態(tài)顯示每個(gè)按鈕下的子圖標(biāo)。由于它的位置在每次單擊之后就會(huì)失效,所以它的位置也需動(dòng)態(tài)來(lái)計(jì)算。圖 4.4 導(dǎo)航欄圖Fig.4.4 Navigation bar graph圖 4.5 導(dǎo)航欄圖類 Fig.4.5 Navigation bar graphs 4.5 用戶登錄窗體的設(shè)計(jì)與實(shí)現(xiàn)程序初始化時(shí),通過(guò)查詢用戶表是否為空來(lái)判斷程序是否是第一次運(yùn)行,如果是第一
57、次運(yùn)行本程序會(huì)提示用戶設(shè)置0級(jí)管理員并配置相應(yīng)1級(jí)應(yīng)用級(jí)管理員相關(guān)信息。否則等待用戶登陸。用戶登陸后,登陸框?qū)l(fā)送消息通知視圖顯示程序左側(cè)的導(dǎo)航條,供用戶使用。同時(shí)將管理員的登陸信息保存在系統(tǒng)全局變量之中,供其它功能模塊使用。相應(yīng)的時(shí)序圖和程序效果圖如下所示。圖 4.6 用戶登錄窗體時(shí)序圖 Fig.4.6 User Login Form timing diagram 圖 4.7 用戶登錄窗體效果圖 Fig.4.7 User Login diagram4.6 密碼修改功能的設(shè)計(jì)與實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊修改密碼按鈕時(shí),獲取系統(tǒng)全局變量中的當(dāng)前用戶的信息,判斷用戶輸入的原始密碼是否正確,不正確時(shí)拒絕用戶更改
58、密碼的要求。如果正確則獲取用戶輸入的新密碼,并構(gòu)造SQL語(yǔ)句,交由Adoconn對(duì)象去執(zhí)行。同時(shí)隱藏系統(tǒng)的導(dǎo)航欄,顯示密碼登陸框,等待用戶的重新登陸。4.7 注銷(xiāo)功能實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊注銷(xiāo)按鈕時(shí),清空系統(tǒng)全局變量中記錄的當(dāng)前用戶的信息,并且隱藏系統(tǒng)的導(dǎo)航欄,同時(shí)顯示密碼登陸框,等待用戶的重新登陸。4.8 退出系統(tǒng)功能實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊退出按鈕時(shí),向程序發(fā)出退出的消息,使應(yīng)用程序退出。4.9 業(yè)主信息查詢當(dāng)業(yè)主信息查詢顯示窗體初始化時(shí),按順序逐字段的提取業(yè)主的信息,然后填充在CEditList控件中顯示給用戶。如果用戶要求精確查詢,程序首先獲得用戶輸入的查詢條件去構(gòu)造相應(yīng)的SQL語(yǔ)句,并傳遞給AdoConnection對(duì)象去執(zhí)行,并將執(zhí)行的結(jié)果返回給用戶。相應(yīng)的程序效果圖如下所示。圖 4.8 業(yè)主信息查詢功能窗體圖 Fig.4.8 Owners information Query Window4.10 用戶交費(fèi)用戶提供待交費(fèi)的樓房號(hào)和房間號(hào),交納相應(yīng)費(fèi)用后,即可由管理員修改交費(fèi)標(biāo)志為已交費(fèi)狀態(tài)。對(duì)于已具有交費(fèi)狀態(tài)的房間僅每月初可
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校友合租宿舍合同范本
- 校園食品安全衛(wèi)生檢查協(xié)議
- 人力資源復(fù)印機(jī)租賃合同
- 家庭陽(yáng)臺(tái)植物擺放租賃合同
- 煙草種植園藥品研發(fā)合同
- 戶外瑜伽活動(dòng)微站租賃合約
- 遠(yuǎn)程醫(yī)療服務(wù)協(xié)議
- 旅行社導(dǎo)購(gòu)員聘用合同
- 旅游項(xiàng)目開(kāi)發(fā)審批指南
- 農(nóng)業(yè)機(jī)械傷害死亡賠償
- 國(guó)開(kāi)2023秋《習(xí)近平總書(shū)記教育重要論述研究》形考任務(wù)四參考答案
- 腹腔鏡手術(shù)的麻醉管理
- 寫(xiě)作與溝通智慧樹(shù)知到課后章節(jié)答案2023年下杭州師范大學(xué)
- 青少年社會(huì)支持評(píng)定量表
- 幼兒園兒歌-《秋葉》課件
- 人教PEP版(2023版)小學(xué)英語(yǔ)六年級(jí)上冊(cè)電子課本
- 江蘇開(kāi)放大學(xué)2023年秋《大學(xué)英語(yǔ)(B)(2) 060052 》過(guò)程性考核作業(yè)4(綜合性大作業(yè))(占全過(guò)程性考核總評(píng)成績(jī)30%)(實(shí)踐性作業(yè))參考答案
- 1.2《怎樣放得更大》教案(新課標(biāo)版)
- 2.1《感受空氣》課件
- 人民醫(yī)院診斷證明書(shū)
- 高職高專思政課建設(shè)的特殊性
評(píng)論
0/150
提交評(píng)論