版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 . . . .NET WinForm編程課程設(shè)計(jì) 題目: 停車場(chǎng)管理系統(tǒng)學(xué)院/系 軟件學(xué)院 專 業(yè) 信息管理與信息系統(tǒng)專業(yè)(日英強(qiáng)化)年 級(jí) 2009級(jí) 學(xué) 號(hào) 009880924 作者 雷 2012年 7月 5日摘 要隨著我國(guó)現(xiàn)代化進(jìn)程的不斷加快,私家車的數(shù)量急劇增加,各類停車場(chǎng)的車流量不斷增多,對(duì)機(jī)動(dòng)車的保管越來(lái)越成為社會(huì)倍受關(guān)注的問(wèn)題。本論文針對(duì)現(xiàn)在普遍采用的人工收費(fèi)管理方法存在的弊端,提出了一套由C# 開(kāi)發(fā)設(shè)計(jì)的小區(qū)停車場(chǎng)管理系統(tǒng),數(shù)據(jù)庫(kù)采用SqlServer 建立,使用ODBC 訪問(wèn)數(shù)據(jù)庫(kù),使用ADO 操作數(shù)據(jù)庫(kù),采用流行的C/S 結(jié)構(gòu),也就是客戶端/服務(wù)器模式。本課題研究的主要容
2、根據(jù)不同的情況將車主分為兩種然后合理化停車的一個(gè)系統(tǒng)。第一種是固定車主,通過(guò)物業(yè)購(gòu)買固定車位,可以選擇月付費(fèi)也可以選擇年付費(fèi)。固定車主的優(yōu)勢(shì)在于無(wú)論什么情況都擁有自己的停車位置不會(huì)被別人占用。第二種是臨時(shí)車主,采用的是一次性付費(fèi),記錄進(jìn)入時(shí)間和出去時(shí)間,然后進(jìn)行繳費(fèi)。小區(qū)停車庫(kù)進(jìn)出口分別擁有2個(gè)車道。管理員通過(guò)系統(tǒng)的查詢功能辨別車主是否是固定車主,如果是固定車主就開(kāi)放1車道進(jìn)入固定車主的停車庫(kù) 如果是臨時(shí)車主就開(kāi)放2車道進(jìn)入臨時(shí)車主停車庫(kù)。根據(jù)該系統(tǒng)的功能共分為七個(gè)模塊:基礎(chǔ)設(shè)置模塊、停車位管理模塊、固定車輛管理模塊、車輛進(jìn)出登記模塊、記錄查詢模塊,文中對(duì)各模塊的功能、操作界面、工作流程做了詳
3、細(xì)的介紹。關(guān)鍵詞: 管理系統(tǒng),C#,SqlServer,C/S目 錄1 緒論11.1 選題意義11.2 小區(qū)停車管理系統(tǒng)的發(fā)展現(xiàn)狀11.3 本系統(tǒng)概述12 系統(tǒng)設(shè)計(jì)32.1 系統(tǒng)技術(shù)概要32.1.1 .NET平臺(tái)概述32.1.2 WinForm程序概述32.1.3 C#語(yǔ)言概述32.1.4 SQL Server 2005簡(jiǎn)介32.2 總體設(shè)計(jì)32.2.1 系統(tǒng)物理環(huán)境配置32.2.2 功能結(jié)構(gòu)設(shè)計(jì)32.3 數(shù)據(jù)庫(kù)設(shè)計(jì)43 系統(tǒng)實(shí)現(xiàn)63.1 系統(tǒng)首頁(yè)實(shí)現(xiàn)63.2 登陸模塊實(shí)現(xiàn)63.3 系統(tǒng)設(shè)置實(shí)現(xiàn)73.4管理員用戶管理73.5流動(dòng)車位收費(fèi)設(shè)置73.6停車場(chǎng)區(qū)域管理73.7固定車位管理73.8固定
4、車輛信息管理73.9車輛進(jìn)出登記73.10歷史記錄查詢73.11退出系統(tǒng)73.3 答案模塊實(shí)現(xiàn)73.3 答案模塊實(shí)現(xiàn)73.3 答案模塊實(shí)現(xiàn)73.3 答案模塊實(shí)現(xiàn)73.3 答案模塊實(shí)現(xiàn)73.3 答案模塊實(shí)現(xiàn)746 / 501 緒論1.1 選題意義小區(qū)停車場(chǎng)管理系統(tǒng)的設(shè)計(jì)目的是要將車輛出入停車場(chǎng)以與對(duì)其收費(fèi)等信息通過(guò)計(jì)算機(jī)進(jìn)行管理。為收費(fèi)登記人員提供便利。在調(diào)研分析的基礎(chǔ)上,通過(guò)對(duì)現(xiàn)在工作流程的整合和改進(jìn),希望探索出一種停車收費(fèi)流程模式,從中領(lǐng)會(huì)系統(tǒng)工程的思想,掌握系統(tǒng)開(kāi)發(fā)的流程和方法,不斷總結(jié)經(jīng)驗(yàn)和教訓(xùn)。隨著社會(huì)信息化的不斷發(fā)展和停車場(chǎng)管理工作的日益完善,停車收費(fèi)登記會(huì)越來(lái)越依賴信息系統(tǒng)的支持,
5、所以本系統(tǒng)的開(kāi)發(fā)要盡量依據(jù)停車場(chǎng)的實(shí)際情況,認(rèn)識(shí)到調(diào)研的重要性,切實(shí)做到從實(shí)際出發(fā),開(kāi)發(fā)出具有一定使用價(jià)值的小區(qū)停車場(chǎng)管理系統(tǒng)。開(kāi)發(fā)小區(qū)停車場(chǎng)管理系統(tǒng)主要是為以后商業(yè)設(shè)施的信息化管理做基礎(chǔ),同時(shí)也為小區(qū)停車場(chǎng)管理系統(tǒng)的開(kāi)發(fā)過(guò)程提供一個(gè)模式,以后通過(guò)不斷強(qiáng)化系統(tǒng)性能,優(yōu)化系統(tǒng)功能,提高停車場(chǎng)現(xiàn)代化管理水平。小區(qū)停車場(chǎng)管理系統(tǒng)的實(shí)施具有如下現(xiàn)實(shí)意義:第一,使車輛出入的登記收費(fèi)操作過(guò)程更加簡(jiǎn)便。第二,系統(tǒng)形成列表對(duì)入庫(kù)車輛進(jìn)行統(tǒng)計(jì),方便查詢。第三,數(shù)據(jù)安全性高,不易丟失。1.2 小區(qū)停車管理的發(fā)展現(xiàn)狀 隨著計(jì)算機(jī)產(chǎn)業(yè)的迅速發(fā)展,電子計(jì)算機(jī)已廣泛的應(yīng)用于信息管理、文字處理、輔助設(shè)計(jì)、輔助教學(xué)與人們的日
6、常生活中。特別是在計(jì)算機(jī)的操作系統(tǒng)具有了圖形化的界面后,使用計(jì)算機(jī)已經(jīng)不再是某些專業(yè)人員的專利,各行各業(yè)的人們不需要經(jīng)過(guò)專業(yè)化的訓(xùn)練就能自如的在計(jì)算機(jī)上進(jìn)行各種復(fù)雜的操作。時(shí)下,為了能創(chuàng)造更大的經(jīng)濟(jì)效益和方便管理,越來(lái)越多的管理設(shè)施迫切需要引入現(xiàn)代化的管理手段,而計(jì)算機(jī)的大容量操作,精確的計(jì)算,使它成為設(shè)施管理不可缺少的手段之一,但隨著計(jì)算機(jī)應(yīng)用的不斷深入,設(shè)施對(duì)軟件的需求也不斷增加,越來(lái)越多的設(shè)施希望擁有適合自己需要的特殊軟件來(lái)滿足自己的特殊要求。對(duì)于當(dāng)今停車場(chǎng)題來(lái)說(shuō),其車輛進(jìn)出量大,各種信息管理容復(fù)雜,查詢和管理出入車輛信息和車輛設(shè)計(jì)信息等工作由人工完成將是很累的,也許還很不切實(shí)際,不僅浪
7、費(fèi)了許多人力物力資源,而且還很容易出現(xiàn)差錯(cuò),有一個(gè)符合要求的軟件對(duì)其進(jìn)行智能便了,對(duì)所有信息有了一個(gè)全局的掌握。對(duì)于一名專業(yè)的信息技術(shù)人員來(lái)說(shuō),如何最大限度地利用車輛管理部門多年來(lái)在數(shù)據(jù)庫(kù)系統(tǒng)上的投資,是每一個(gè)從事信息技術(shù)工作的專業(yè)人員都應(yīng)該考慮的問(wèn)題?,F(xiàn)在全國(guó)的很多大型停車場(chǎng)的車輛出入登記都采用了計(jì)算機(jī)管理,這樣就需要一種管理軟件來(lái)為車輛者服務(wù),協(xié)助他們來(lái)完成管理數(shù)量巨大的車輛出入登記收費(fèi)這么一個(gè)龐大的工作。1.3 本系統(tǒng)概述小區(qū)停車管理系統(tǒng),即實(shí)現(xiàn)小區(qū)停車的信息化登記查詢系統(tǒng),是適應(yīng)我國(guó)現(xiàn)代化進(jìn)程加快,私家車數(shù)量急劇增加,停車管理難的現(xiàn)狀而發(fā)展的信息化管理系統(tǒng)。其核心思想是使停車收費(fèi)管理實(shí)
8、現(xiàn)科學(xué)化、規(guī)化,增強(qiáng)工作人員對(duì)選課流程的管理能力,從而提高工作效率,并將帶動(dòng)停車場(chǎng)的其他信息化建設(shè),推動(dòng)停車場(chǎng)的信息化水平更上一層樓。本文首先介紹了小區(qū)停車系統(tǒng)發(fā)展的現(xiàn)狀,然后提出一個(gè)基于小區(qū)停車管理系統(tǒng)的數(shù)字信息化領(lǐng)域的架構(gòu),并對(duì)相關(guān)關(guān)鍵技術(shù)進(jìn)行了討論,最后說(shuō)明了小區(qū)停車管理系統(tǒng)在數(shù)字信息化領(lǐng)域的應(yīng)用前景。本課題使用Visual Studio 2008作為開(kāi)發(fā)工具,開(kāi)發(fā)語(yǔ)言可以是C#,后臺(tái)數(shù)據(jù)庫(kù)可采用SQL Server 2005數(shù)據(jù)庫(kù)。小區(qū)停車管理系統(tǒng)主要由系統(tǒng)設(shè)置,停車位管理,固定車輛管理,車輛進(jìn)出登記,歷史記錄查詢五個(gè)部分組成。本課題主要功能詳解如下:系統(tǒng)設(shè)置:主要功能包括密碼的修改,
9、管理員用戶的添加與修改,收費(fèi)標(biāo)準(zhǔn)的設(shè)置等。停車位管理:主要功能實(shí)現(xiàn)車輛區(qū)域管理與固定車位管理,包括添加停車位區(qū)域,停車位區(qū)域管理,添加固定車位,固定車位的管理等。固定車輛管理:對(duì)小區(qū)車輛信息進(jìn)行登記并實(shí)現(xiàn)小區(qū)固定車輛的管理 。車輛進(jìn)出登記:主要通過(guò)車輛類型,車主,記錄編號(hào),車牌,聯(lián)系方式,樓棟門牌等信息對(duì)停放車輛進(jìn)行管理。歷史記錄查詢:實(shí)現(xiàn)對(duì)以往登記過(guò)的車輛信息進(jìn)行檢索。2 智能QA設(shè)計(jì)2.1 系統(tǒng)技術(shù)概要2.1.1.NET平臺(tái)概述2.1.2WinForm程序概述2.1.3C#語(yǔ)言概述2.1.4 SQL Server 2005簡(jiǎn)介SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Mic
10、rosoft Sybase 和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開(kāi)發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)SQL Server安裝界面用。SQL Server 2005 數(shù)據(jù)庫(kù)引擎提供完整的XML 支持。它還具有構(gòu)成最大的Web 站點(diǎn)的數(shù)據(jù)存儲(chǔ)組件所需的可伸縮性、可
11、用性和安全功能。SQL Server 2005 程序設(shè)計(jì)模型與 Windows DNA 構(gòu)架集成,用以開(kāi)發(fā) Web 應(yīng)用程序,并且SQL Server 2005 支持 English Query 和 Microsoft 搜索服務(wù)等功能,在Web 應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能。同一個(gè)數(shù)據(jù)庫(kù)引擎可以在不同的平臺(tái)上使用,從運(yùn)行 Microsoft Windows® 98 的便攜式電腦,到運(yùn)行 Microsoft Windows 2005 數(shù)據(jù)中心版的大型多處理器服務(wù)器。SQL Server 2005 企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型存支持等功能,使其得以升級(jí)到最
12、大 Web 站點(diǎn)所需的性能級(jí)別。2.2 總體設(shè)計(jì)2.2.1 系統(tǒng)物理環(huán)境配置當(dāng)前開(kāi)發(fā)本系統(tǒng)硬件平臺(tái)的配置:1CPU:T6600 2.20GHz。2存:2.00 GB(三星 PC3-8500F DDR3 SDRAM 1066MHz)。3硬盤:320GB。4基本的輸入、輸出設(shè)備。系統(tǒng)軟件平臺(tái)的配置:如果說(shuō)硬件是一個(gè)系統(tǒng)的身體,那么軟件則是一個(gè)系統(tǒng)的靈魂,一個(gè)系統(tǒng)設(shè)計(jì)的好壞,不僅要有正確的軟件開(kāi)發(fā)思想,也應(yīng)該有良好的軟件開(kāi)發(fā)工具,投資規(guī)劃與保險(xiǎn)模塊所采用的軟件配置環(huán)境為:1操作系統(tǒng):Windows 7旗艦版Service Pack1。2數(shù)據(jù)庫(kù)軟件:Microsoft SQL Server 2005。
13、3系統(tǒng)開(kāi)發(fā)軟件:Visual Studio 2008。2.2.2 功能結(jié)構(gòu)設(shè)計(jì)系統(tǒng)功能結(jié)構(gòu)圖如圖2-1所示。圖2-1 系統(tǒng)功能結(jié)構(gòu)圖本系統(tǒng)總體上由兩個(gè)模塊組成:管理員模塊和普通用戶模塊。下面就圖2-1,給予分別描述。1管理員模塊組成:(1) 管理員管理子模塊(2) 收費(fèi)標(biāo)準(zhǔn)設(shè)置管理子模塊(3) 停車位區(qū)域與固定車輛管理子模塊(添加,刪除與檢索)(4) 車輛進(jìn)出登記(5) 歷史記錄查詢2普通用戶模塊組成:(1) 用戶登錄管理子模塊(2) 固定車輛管理子模塊(3) 車輛進(jìn)出登記管理(4) 歷史記錄查詢2.2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)管理員信息表如表2-1所示。表2-1 管理員信息表字段名說(shuō) 明類 型長(zhǎng) 度可
14、否為空主鍵ID用戶編號(hào)varchar4否是 ADName用戶名稱varchar20否否 ADpass用戶密碼varchar20是否停車場(chǎng)區(qū)域劃分表如表2-2所示。表2-2 停車場(chǎng)區(qū)域劃分表字段名說(shuō) 明類 型長(zhǎng) 度可否為空主鍵ID自動(dòng)編號(hào)int4否是 Pname區(qū)域名稱varchar20否否 Ptype停車位類型int2000否否 Pnum包含車位數(shù)int8否否流動(dòng)停車位價(jià)格表2-3所示。表2-3流動(dòng)停車位價(jià)格表字段名說(shuō) 明類 型長(zhǎng) 度可否為空主鍵ID自動(dòng)編號(hào)int4否是Price價(jià)格 float否否固定停車位詳細(xì)表如表2-4所示。表2-4 固定停車位詳細(xì)信息表字段名說(shuō) 明類 型長(zhǎng) 度可否為空主
15、鍵ID自動(dòng)編號(hào)int 4否是 PID所屬停車位區(qū)域int50否否 Cno車位編號(hào)varchar20否否 Price售價(jià) float 50否否State是否賣出int小區(qū)車輛登記表如表2-5所示。表2-5小區(qū)車輛登記表字段名說(shuō) 明類 型長(zhǎng) 度可否為空主鍵CarNo賬單編號(hào)varchar 20否是UName車主varchar50否否UTel聯(lián)系方式varchar20否否UAddress樓棟門牌varchar 100否否CPID是否購(gòu)買固定位int4否否車輛進(jìn)出停車表如表2-6所示。表2-6車輛進(jìn)出停車表字段名說(shuō) 明類 型長(zhǎng) 度可否為空主鍵ID自動(dòng)編號(hào)int 4否是OrderNo系統(tǒng)編號(hào)varcha
16、r20否否UID是否登記車輛int20否否CTyp固定或流動(dòng)車位int 20否否CarNo賬單編號(hào)varchar20否否UName車主varchar20否否Utel聯(lián)系方式varchar20否否UAddress樓棟門牌varchar100否否Price流動(dòng)車位費(fèi)用float20否否BegTime開(kāi)始停車時(shí)間datetime20否否EndTime離開(kāi)時(shí)間datetime20否否AllPrice流動(dòng)車位總費(fèi)用float20否否3 系統(tǒng)實(shí)現(xiàn)3.1 系統(tǒng)首頁(yè)實(shí)現(xiàn)用戶成功登錄后,進(jìn)入主界面窗口,在此窗口用戶可以進(jìn)入系統(tǒng)其他模塊:系統(tǒng)設(shè)置、停車位管理、固定車輛管理、車輛進(jìn)出登記、歷史記錄查詢、退出系統(tǒng)等;
17、用戶還可以快速瀏覽到小區(qū)當(dāng)前停車位使用情況,快捷方便,確保工作信息準(zhǔn)確無(wú)誤;用戶還可以針對(duì)車輛進(jìn)出進(jìn)行登記,提高工作效率。首頁(yè)界面如圖3-1所示。圖3-1 首頁(yè)界面3.2 登陸模塊實(shí)現(xiàn)運(yùn)行系統(tǒng),打開(kāi)登錄界面,用戶輸入用戶名和登錄密碼,點(diǎn)擊“確定”按鈕,通過(guò)SQL語(yǔ)句系統(tǒng)將自動(dòng)將用戶輸入信息與數(shù)據(jù)庫(kù)信息匹配, 數(shù)據(jù)庫(kù)中存在相應(yīng)的信息,用戶將可以成功登錄系統(tǒng),反之用戶登錄失敗,系統(tǒng)將提示用戶重新登錄。登陸界面如圖3-2所示。圖3-2 登陸界面3.3系統(tǒng)設(shè)置實(shí)現(xiàn)在進(jìn)行密碼修改功能時(shí),系統(tǒng)需要用戶輸入舊密碼(ADPass 控件)、新密碼(ADPass1控件)、確認(rèn)密碼(ADPass2控件), 點(diǎn)擊“修
18、改”按鈕,系統(tǒng)執(zhí)行 button1_Click修改事件,首先驗(yàn)證用戶是否完整輸入,以與輸入的新密碼和確認(rèn)密碼是否一致。如下所示:if (ADPass.Text.Trim().Equals("")ADPass.Focus();MessageBox.Show("請(qǐng)輸入舊密碼.");return;if (ADPass1.Text.Trim().Equals("")ADPass1.Focus();MessageBox.Show("請(qǐng)輸入新密碼.");return;elseif (!ADPass2.Text.Trim().E
19、quals(ADPass1.Text.Trim()ADPass2.Focus();MessageBox.Show("請(qǐng)輸入兩次輸入密碼不一致.");return;如果用戶沒(méi)有完整輸入,系統(tǒng)暫停,返回重新輸入。如果用戶完整輸入,系統(tǒng)繼續(xù)往下運(yùn)行,系統(tǒng)將繼續(xù)驗(yàn)證用戶輸入的 舊密碼是否正確,密碼正確,系統(tǒng)繼續(xù)運(yùn)行,密碼錯(cuò)誤系統(tǒng)暫停,返回重新輸入,如下代碼所示:DataTable dt = SqlHelper.ExecQuerySql("select ID,ADName,ADPass,ADNo,ADFlag from AdminInfo where id=" +
20、 lab_uid.Text.Trim() + " and ADPass=N'" + ADPass.Text.Trim() + "'");if (dt.Rows.Count > 0)int i = SqlHelper.ExecUpdateSql("update AdminInfo set ADPass=N" + ADPass.Text.Trim() + "'' where id=" + lab_uid.Text.Trim() + "");if (i >
21、0)MessageBox.Show("密碼修改成功.");elseMessageBox.Show("密碼修改失敗.");ADPass.Focus();return;系統(tǒng)通過(guò)創(chuàng)建 SQL語(yǔ)句,調(diào)用 SqlHelper 類的ExecQuerySql 方法,向數(shù)據(jù)庫(kù)中匹配修改數(shù)據(jù),返回執(zhí)行影響的記錄數(shù)目,如果等于 0,表示修改失敗,沒(méi)有影響數(shù)據(jù)庫(kù)記錄數(shù),如果大于0,表示修改成功。系統(tǒng)設(shè)置界面如圖3-3所示。圖3-3 系統(tǒng)設(shè)置界面3.4 管理員用戶管理 圖 3-4 管理員用戶管理此功能模塊只有系統(tǒng)“總管理員”權(quán)限才能進(jìn)入,“普通”管理員權(quán)限不能進(jìn)入。在此模塊“總
22、管理員”可以添加、修改、刪除、查詢所有系統(tǒng)管理員的信息,雙擊記錄列表,進(jìn)入記錄修改頁(yè)面。如下代碼:/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,ID,ADName as 用戶名,case isnull(ADFlag,0) when 1 then N'總管理員' else N'普通管理員' end as 管理員權(quán)限 from AdminInfo order by ADFlag desc,ADName");fo
23、r (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false;private void button1_Click(object sender, EventArgs e)DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,ID,ADName as 用戶名,case isnull(ADFlag
24、,0) when 1 then N'總管理員' else N'普通管理員' end as 管理員權(quán)限 from AdminInfo where 1=1 and (ADName like N'%" + ObjName.Text.Trim() + "%') order by ADFlag desc,ADName");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSo
25、urce = dt;gv_1.Columns1.Visible = false; 圖 3-5 管理員詳細(xì)信息在此窗口,可以實(shí)現(xiàn)管理員信息添加、信息修改、信息刪除以與詳細(xì)信息查看。添加代碼如下:首先判斷添加的用戶名是否存在,用戶名存在,不能繼續(xù)添加,if (SqlHelper.ExecQuerySql("select id from AdminInfo where ADName=N'" + ADName.Text.Trim() + "'").Rows.Count > 0)MessageBox.Show("輸入用戶名已存在,不
26、能重復(fù)添加.");ADName.Focus();return;/添加int i = SqlHelper.ExecUpdateSql(string.Format("insert into AdminInfo(ADName,ADPass,ADNo,ADFlag) values(N'0',N'1',N'2',3)", ADName.Text.Trim(), ADPass.Text.Trim(), "", adflag);if (i > 0) /添加成功MessageBox.Show("信
27、息添加成功.");this.Hide();elseMessageBox.Show("信息添加失敗.");ADName.Focus();return;修改代碼如下:首先判斷修改的用戶名是否存在,用戶名存在,不能繼續(xù)添加,if (SqlHelper.ExecQuerySql("select id from AdminInfo where ADName=N'" + ADName.Text.Trim() + "' and id<>" + lab_id.Text.Trim().Rows.Count >
28、 0)MessageBox.Show("輸入用戶名已存在,不能修改.");ADName.Focus();return;/添加int i = SqlHelper.ExecUpdateSql(string.Format("update AdminInfo set ADName=N'0',ADPass=N'1',ADNo=N'2',ADFlag=3 where id=4", ADName.Text.Trim(), ADPass.Text.Trim(), "", adflag, lab_id.T
29、ext.Trim();if (i > 0) /修改成功MessageBox.Show("信息修改成功.");this.Hide();elseMessageBox.Show("信息修改失敗.");ADName.Focus();return;刪除代碼如下:int i = SqlHelper.ExecUpdateSql("delete AdminInfo where id=" + lab_id.Text.Trim();if (i > 0) /刪除成功MessageBox.Show("信息刪除成功.");thi
30、s.Hide();elseMessageBox.Show("信息刪除失敗.");ADName.Focus();return;3.5流動(dòng)車位收費(fèi)設(shè)置 圖 3-6 流動(dòng)車輛收費(fèi)標(biāo)準(zhǔn)管理此功能模塊只有系統(tǒng)“總管理員”權(quán)限才能進(jìn)入,“普通”管理員權(quán)限不能進(jìn)入。在此模塊“總管理員”可以設(shè)置系統(tǒng)中流動(dòng)車位的費(fèi)用,供系統(tǒng)收費(fèi)使用。 首先判斷是否完整輸入,只有完整輸入才能進(jìn)行下一步,否則系統(tǒng)返回,提示輸入,代碼如下:if (Price.Text.Trim() = "")MessageBox.Show("請(qǐng)輸入收費(fèi)價(jià)格.");Price.Focus()
31、;return;其次判斷本次輸入是修改還是添加數(shù)據(jù),即數(shù)據(jù)庫(kù)中是否已經(jīng)存在價(jià)格信息。添加:通過(guò) Insert into 語(yǔ)句直接向數(shù)據(jù)庫(kù)中添加一條價(jià)格記錄信息,修改:則是在現(xiàn)有數(shù)據(jù)記錄基礎(chǔ)上,直接通過(guò)Update語(yǔ)句修改記錄。 代碼如下:if (lab_id.Text != "0")/添加int i = SqlHelper.ExecUpdateSql(string.Format("update PriceInfo set Price=N'0' where id=1", Price.Text.Trim(), lab_id.Text.Trim
32、();if (i > 0) /修改成功MessageBox.Show("收費(fèi)價(jià)格修改成功.");this.Hide();elseMessageBox.Show("收費(fèi)價(jià)格修改失敗.");Price.Focus();return;else/添加int i = SqlHelper.ExecUpdateSql(string.Format("insert into PriceInfo(Price) values(0)", Price.Text.Trim();if (i > 0) /添加成功MessageBox.Show("
33、;收費(fèi)價(jià)格添加成功.");this.Hide();elseMessageBox.Show("收費(fèi)價(jià)格添加失敗.");Price.Focus();return;3.6 停車場(chǎng)區(qū)域管理 圖3-7停車區(qū)域管理小區(qū)的停車車場(chǎng)可以劃分為多個(gè)區(qū)域,合適安排使用,有的區(qū)域?qū)iT停放固定車位,有的區(qū)域?qū)iT停放流動(dòng)車輛,每個(gè)區(qū)域停放固定數(shù)量的車輛,這樣即方便管理員的操作,也確保信息統(tǒng)計(jì)準(zhǔn)確。代碼如下:/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as
34、iid,ID,PName as 區(qū)域名稱,PNum as 車位個(gè)數(shù),case isnull(PType,0) when 1 then N'固定車位' else N'流動(dòng)車位' end as 車位類型 from PlaceInfo order by PName");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false;pri
35、vate void button1_Click(object sender, EventArgs e)DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,ID,PName as 區(qū)域名稱,PNum as 車位個(gè)數(shù),case isnull(PType,0) when 1 then N'固定車位' else N'流動(dòng)車位' end as 車位類型 from PlaceInfo where 1=1 and (PName like N'%" + ObjName.Tex
36、t.Trim() + "%') order by PName");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false;private void gv_1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)if (e.RowIndex < (gv_1.Rows.C
37、ount - 1)/雙擊數(shù)據(jù)時(shí),取得數(shù)據(jù)id ,并顯示修改頁(yè)面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();PlaceInfoAdd cadd = new PlaceInfoAdd(id);this.Close();cadd.Show();3.7固定停車位管理 圖 3-8 固定停車位管理小區(qū)的固定車位是指一些業(yè)主可以通過(guò)購(gòu)買的方式長(zhǎng)期使用自己的車位,固定車位明碼標(biāo)價(jià),業(yè)主可以根據(jù)自己情況選擇,無(wú)需害怕回來(lái)的晚或者小區(qū)停放車輛過(guò)多而導(dǎo)致沒(méi)有地方停車。代碼如下:public CarParkMgr(string uid)Initial
38、izeComponent();BindList(); /加載頁(yè)面/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,b.PName as 停車區(qū)域,a.CNo as 車位編號(hào),Price as '銷售價(jià)格(元)',case isnull(a.state,0) when 1 then N'已賣出' else N'空閑' end as 使用情況 from CarParkInfo a left join
39、 PlaceInfo b on a.PID=b.id where 1=1 order by PID,CNo");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false;private void button1_Click(object sender, EventArgs e)DataTable dt = SqlHelper.ExecQuerySql(&qu
40、ot;select '' as iid,a.ID,b.PName as 停車區(qū)域,a.CNo as 車位編號(hào),Price as '銷售價(jià)格(元)',case isnull(a.state,0) when 1 then N'已賣出' else N'空閑' end as 使用情況 from CarParkInfo a left join PlaceInfo b on a.PID=b.id where 1=1 and (a.CNo like N'%" + ObjName.Text.Trim() + "%
41、9; or b.PName like N'%" + ObjName.Text.Trim() + "%') order by a.PID,a.CNo");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false;/gv_1.Columns2.Visible = false;private void gv_1_CellDoub
42、leClick(object sender, DataGridViewCellEventArgs e)if (e.RowIndex < (gv_1.Rows.Count - 1)/雙擊數(shù)據(jù)時(shí),取得數(shù)據(jù)id ,并顯示修改頁(yè)面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();CarParkAdd cadd = new CarParkAdd(id);this.Close();cadd.Show();3.8固定車輛信息管理 圖 3-9 固定車輛信息管理固定車輛是指小區(qū)業(yè)主將自己的車輛登記,系統(tǒng)中保存業(yè)主與其車輛信息,方便統(tǒng)計(jì)管理。業(yè)主
43、可以選擇使用流動(dòng)車位,或者購(gòu)買自己的固定車位,2種方式為業(yè)主提供方便。代碼如下:public CarInfoMgr(string uid)InitializeComponent();BindList(); /加載頁(yè)面/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,a.CarNO as 車輛編號(hào),a.UName as 車主,a.UTel as 聯(lián)系方式,a.UAddress as 樓棟門牌,case isnull(a.CPID,0) when
44、 0 then N'流動(dòng)車位' else N'固定車位' end as 使用車位,c.PName+'-'+b.CNo+'(' + convert(nvarchar,b.Price) + '元)' as 車位信息,a.UPriceInfo as 備注 from CarInfo a left join CarParkInfo b on a.CPID=b.ID left join PlaceInfo c on b.PID=c.ID where 1=1 order by CarNO");for (int i =
45、0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false;private void button1_Click(object sender, EventArgs e)DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,a.CarNO as 車輛編號(hào),a.UName as 車主,a.UTel as 聯(lián)
46、系方式,a.UAddress as 樓棟門牌,case isnull(a.CPID,0) when 0 then N'流動(dòng)車位' else N'固定車位' end as 使用車位,c.PName+'-'+b.CNo+'(' + convert(nvarchar,b.Price) + '元)' as 車位信息,a.UPriceInfo as 備注 from CarInfo a left join CarParkInfo b on a.CPID=b.ID left join PlaceInfo c on b.PID=c
47、.ID where 1=1 and (a.CNo like N'%" + ObjName.Text.Trim() + "%' or b.PName like N'%" + ObjName.Text.Trim() + "%') order by a.PID,a.CNo");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Colu
48、mns1.Visible = false;private void gv_1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)if (e.RowIndex < (gv_1.Rows.Count - 1)/雙擊數(shù)據(jù)時(shí),取得數(shù)據(jù)id ,并顯示修改頁(yè)面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();CarInfoAdd cadd = new CarInfoAdd(id);this.Close();cadd.Show(); 圖 3-10固定車輛信息管理員在此窗口可
49、以添加、修改、刪除業(yè)主登記車輛信息。添加代碼:判斷是修改還是添加,當(dāng)管理員添加固定車輛信息時(shí),系統(tǒng)首先驗(yàn)證信息是否完整輸入,完整輸入進(jìn)入下一步,驗(yàn)證輸入的車牌是否已存在信息,存在通過(guò)彈出窗口提示用戶信息已存在,不能重復(fù)輸入,不存在將信息保存數(shù)據(jù)庫(kù)。if (lab_id.Text != "0")/修改 ,判斷用戶名是否存在if (SqlHelper.ExecQuerySql("select id from CarInfo where CarNO=N'" + CarNO.Text.Trim() + "' and id<>
50、" + lab_id.Text.Trim().Rows.Count > 0)MessageBox.Show("輸入車牌已存在,不能修改.");CarNO.Focus();return;/添加int i = SqlHelper.ExecUpdateSql(string.Format("update CarInfo set CarNO=N'0',UName=N'1',UTel=N'2',UAddress=N'3',CPID=4,UPriceInfo=N'5' where i
51、d=6", CarNO.Text.Trim(), UName.Text.Trim(), UTel.Text.Trim(), UAddress.Text.Trim(), adflag, UPriceInfo.Text.Trim(), lab_id.Text.Trim();if (i > 0) /修改成功if (adflag != "0" && lab_oldid.Text != adflag)/記錄固定車位銷售情況SqlHelper.ExecUpdateSql("update CarParkInfo set state=1 where
52、 id=" + adflag);SqlHelper.ExecUpdateSql("update CarParkInfo set state=0 where id=" + lab_oldid.Text);MessageBox.Show("信息修改成功.");this.Hide();elseMessageBox.Show("信息修改失敗.");CarNO.Focus();return;else/判斷添加用戶名是否存在if (SqlHelper.ExecQuerySql("select id from CarInfo w
53、here CarNO=N'" + CarNO.Text.Trim() + "'").Rows.Count > 0)MessageBox.Show("輸入?yún)^(qū)域名已存在,不能重復(fù)添加.");CarNO.Focus();return;int i = SqlHelper.ExecUpdateSql(string.Format("insert into CarInfo(CarNO,UName,UTel,UAddress,CPID,UPriceInfo,addtime) values(N'0',N'1
54、',N'2',N'3',4,N'5',getdate()", CarNO.Text.Trim(), UName.Text.Trim(), UTel.Text.Trim(), UAddress.Text.Trim(), adflag, UPriceInfo.Text.Trim();if (i > 0) /添加成功/記錄固定車位銷售情況if (adflag != "0" )SqlHelper.ExecUpdateSql("update CarParkInfo set state=1 where i
55、d=" + adflag);MessageBox.Show("信息添加成功.");this.Hide();elseMessageBox.Show("信息添加失敗.");CarNO.Focus();return;39車輛進(jìn)、出登記圖 3-11 車輛外出登記在系統(tǒng)主頁(yè)面中 輸入車牌,選擇 “外出登記”或者“進(jìn)入登記”按鈕,系統(tǒng)將自動(dòng)進(jìn)入車輛登記界面,如圖 5-11 即為車輛外出登記,系統(tǒng)根據(jù)輸入的 車牌自動(dòng)列表車輛在系統(tǒng)中的信息,以與車輛停放時(shí)錄入的信息,以與進(jìn)入小區(qū)時(shí)間,如果車輛是使用的流動(dòng)車位,點(diǎn)擊“計(jì)算費(fèi)用”按鈕,系統(tǒng)將自動(dòng)計(jì)算車輛的停車費(fèi)用
56、。如果是固定車位車輛,則只登記信息,無(wú)需收取費(fèi)用。代碼如下:private void BindPage(string carno)EndTime.Text = DateTime.Now.ToString();DataTable dtmn = SqlHelper.ExecQuerySql("select a.ID,a.OrderNo,a.UID,a.Ctyp,a.CarNO,a.UName,a.Utel,a.UAddress,a.price,a.BegTime,a.EndTime,a.AllPrice,c.PName+'-'+b.CNo+'(' + co
57、nvert(nvarchar,b.Price) + '元)' as carparkinfo from OrderList a left join CarParkInfo b on a.CTyp=b.ID left join PlaceInfo c on b.PID=c.ID where a.CarNO=N'" + carno + "' and a.AllPrice=0");if (dtmn.Rows.Count > 0)rbl_1.Enabled = false;rbl_2.Enabled = false;lab_price.Text = "0"UID.Text = dtmn.Rows0"id".ToString();OrderNo.Text = dtmn.Rows0"OrderNo".ToString();CarNO.Text = dtmn.Rows0"CarNO".ToString();UName.Text =
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- ETC發(fā)行實(shí)施方案
- 11-輪滑初級(jí)教學(xué)教案
- 2024年淮南職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 形體行業(yè)發(fā)展趨勢(shì)報(bào)告
- 2024年海南體育職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2024年浙江經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- oA鑫辰花園市場(chǎng)定位及規(guī)劃方案對(duì)比分析教程文件
- 2024年河南女子職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2024年閬中市中醫(yī)醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年江西生物科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- (課件)-談研究生培養(yǎng)
- 《disc性格分析》課件
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫(kù)及答案(900題)
- 反恐應(yīng)急預(yù)案3篇
- 微更新視角下老舊社區(qū)公共空間適老化設(shè)計(jì)策略研究
- 骨科2025年度工作計(jì)劃
- 期末綜合試卷(試題)2024-2025學(xué)年人教版數(shù)學(xué)五年級(jí)上冊(cè)(含答案)
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 急性化膿性中耳炎病人的護(hù)理
- 國(guó)家電網(wǎng)公司電力安全工作規(guī)程營(yíng)銷習(xí)題庫(kù)(含答案)
- 2024ESC心房顫動(dòng)管理指南解讀-第一部分
評(píng)論
0/150
提交評(píng)論