NETWinForm編程課程設(shè)計模板_第1頁
NETWinForm編程課程設(shè)計模板_第2頁
NETWinForm編程課程設(shè)計模板_第3頁
NETWinForm編程課程設(shè)計模板_第4頁
NETWinForm編程課程設(shè)計模板_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 . . . .NET WinForm編程課程設(shè)計 題目: 停車場管理系統(tǒng)學(xué)院/系 軟件學(xué)院 專 業(yè) 信息管理與信息系統(tǒng)專業(yè)(日英強(qiáng)化)年 級 2009級 學(xué) 號 009880924 作者 雷 2012年 7月 5日摘 要隨著我國現(xiàn)代化進(jìn)程的不斷加快,私家車的數(shù)量急劇增加,各類停車場的車流量不斷增多,對機(jī)動車的保管越來越成為社會倍受關(guān)注的問題。本論文針對現(xiàn)在普遍采用的人工收費(fèi)管理方法存在的弊端,提出了一套由C# 開發(fā)設(shè)計的小區(qū)停車場管理系統(tǒng),數(shù)據(jù)庫采用SqlServer 建立,使用ODBC 訪問數(shù)據(jù)庫,使用ADO 操作數(shù)據(jù)庫,采用流行的C/S 結(jié)構(gòu),也就是客戶端/服務(wù)器模式。本課題研究的主要容

2、根據(jù)不同的情況將車主分為兩種然后合理化停車的一個系統(tǒng)。第一種是固定車主,通過物業(yè)購買固定車位,可以選擇月付費(fèi)也可以選擇年付費(fèi)。固定車主的優(yōu)勢在于無論什么情況都擁有自己的停車位置不會被別人占用。第二種是臨時車主,采用的是一次性付費(fèi),記錄進(jìn)入時間和出去時間,然后進(jìn)行繳費(fèi)。小區(qū)停車庫進(jìn)出口分別擁有2個車道。管理員通過系統(tǒng)的查詢功能辨別車主是否是固定車主,如果是固定車主就開放1車道進(jìn)入固定車主的停車庫 如果是臨時車主就開放2車道進(jìn)入臨時車主停車庫。根據(jù)該系統(tǒng)的功能共分為七個模塊:基礎(chǔ)設(shè)置模塊、停車位管理模塊、固定車輛管理模塊、車輛進(jìn)出登記模塊、記錄查詢模塊,文中對各模塊的功能、操作界面、工作流程做了詳

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è)計32.1 系統(tǒng)技術(shù)概要32.1.1 .NET平臺概述32.1.2 WinForm程序概述32.1.3 C#語言概述32.1.4 SQL Server 2005簡介32.2 總體設(shè)計32.2.1 系統(tǒng)物理環(huán)境配置32.2.2 功能結(jié)構(gòu)設(shè)計32.3 數(shù)據(jù)庫設(shè)計43 系統(tǒng)實現(xiàn)63.1 系統(tǒng)首頁實現(xiàn)63.2 登陸模塊實現(xiàn)63.3 系統(tǒng)設(shè)置實現(xiàn)73.4管理員用戶管理73.5流動車位收費(fèi)設(shè)置73.6停車場區(qū)域管理73.7固定車位管理73.8固定

4、車輛信息管理73.9車輛進(jìn)出登記73.10歷史記錄查詢73.11退出系統(tǒng)73.3 答案模塊實現(xiàn)73.3 答案模塊實現(xiàn)73.3 答案模塊實現(xiàn)73.3 答案模塊實現(xiàn)73.3 答案模塊實現(xiàn)73.3 答案模塊實現(xiàn)746 / 501 緒論1.1 選題意義小區(qū)停車場管理系統(tǒng)的設(shè)計目的是要將車輛出入停車場以與對其收費(fèi)等信息通過計算機(jī)進(jìn)行管理。為收費(fèi)登記人員提供便利。在調(diào)研分析的基礎(chǔ)上,通過對現(xiàn)在工作流程的整合和改進(jìn),希望探索出一種停車收費(fèi)流程模式,從中領(lǐng)會系統(tǒng)工程的思想,掌握系統(tǒng)開發(fā)的流程和方法,不斷總結(jié)經(jīng)驗和教訓(xùn)。隨著社會信息化的不斷發(fā)展和停車場管理工作的日益完善,停車收費(fèi)登記會越來越依賴信息系統(tǒng)的支持,

5、所以本系統(tǒng)的開發(fā)要盡量依據(jù)停車場的實際情況,認(rèn)識到調(diào)研的重要性,切實做到從實際出發(fā),開發(fā)出具有一定使用價值的小區(qū)停車場管理系統(tǒng)。開發(fā)小區(qū)停車場管理系統(tǒng)主要是為以后商業(yè)設(shè)施的信息化管理做基礎(chǔ),同時也為小區(qū)停車場管理系統(tǒng)的開發(fā)過程提供一個模式,以后通過不斷強(qiáng)化系統(tǒng)性能,優(yōu)化系統(tǒng)功能,提高停車場現(xiàn)代化管理水平。小區(qū)停車場管理系統(tǒng)的實施具有如下現(xiàn)實意義:第一,使車輛出入的登記收費(fèi)操作過程更加簡便。第二,系統(tǒng)形成列表對入庫車輛進(jìn)行統(tǒng)計,方便查詢。第三,數(shù)據(jù)安全性高,不易丟失。1.2 小區(qū)停車管理的發(fā)展現(xiàn)狀 隨著計算機(jī)產(chǎn)業(yè)的迅速發(fā)展,電子計算機(jī)已廣泛的應(yīng)用于信息管理、文字處理、輔助設(shè)計、輔助教學(xué)與人們的日

6、常生活中。特別是在計算機(jī)的操作系統(tǒng)具有了圖形化的界面后,使用計算機(jī)已經(jīng)不再是某些專業(yè)人員的專利,各行各業(yè)的人們不需要經(jīng)過專業(yè)化的訓(xùn)練就能自如的在計算機(jī)上進(jìn)行各種復(fù)雜的操作。時下,為了能創(chuàng)造更大的經(jīng)濟(jì)效益和方便管理,越來越多的管理設(shè)施迫切需要引入現(xiàn)代化的管理手段,而計算機(jī)的大容量操作,精確的計算,使它成為設(shè)施管理不可缺少的手段之一,但隨著計算機(jī)應(yīng)用的不斷深入,設(shè)施對軟件的需求也不斷增加,越來越多的設(shè)施希望擁有適合自己需要的特殊軟件來滿足自己的特殊要求。對于當(dāng)今停車場題來說,其車輛進(jìn)出量大,各種信息管理容復(fù)雜,查詢和管理出入車輛信息和車輛設(shè)計信息等工作由人工完成將是很累的,也許還很不切實際,不僅浪

7、費(fèi)了許多人力物力資源,而且還很容易出現(xiàn)差錯,有一個符合要求的軟件對其進(jìn)行智能便了,對所有信息有了一個全局的掌握。對于一名專業(yè)的信息技術(shù)人員來說,如何最大限度地利用車輛管理部門多年來在數(shù)據(jù)庫系統(tǒng)上的投資,是每一個從事信息技術(shù)工作的專業(yè)人員都應(yīng)該考慮的問題?,F(xiàn)在全國的很多大型停車場的車輛出入登記都采用了計算機(jī)管理,這樣就需要一種管理軟件來為車輛者服務(wù),協(xié)助他們來完成管理數(shù)量巨大的車輛出入登記收費(fèi)這么一個龐大的工作。1.3 本系統(tǒng)概述小區(qū)停車管理系統(tǒng),即實現(xiàn)小區(qū)停車的信息化登記查詢系統(tǒng),是適應(yīng)我國現(xiàn)代化進(jìn)程加快,私家車數(shù)量急劇增加,停車管理難的現(xiàn)狀而發(fā)展的信息化管理系統(tǒng)。其核心思想是使停車收費(fèi)管理實

8、現(xiàn)科學(xué)化、規(guī)化,增強(qiáng)工作人員對選課流程的管理能力,從而提高工作效率,并將帶動停車場的其他信息化建設(shè),推動停車場的信息化水平更上一層樓。本文首先介紹了小區(qū)停車系統(tǒng)發(fā)展的現(xiàn)狀,然后提出一個基于小區(qū)停車管理系統(tǒng)的數(shù)字信息化領(lǐng)域的架構(gòu),并對相關(guān)關(guān)鍵技術(shù)進(jìn)行了討論,最后說明了小區(qū)停車管理系統(tǒng)在數(shù)字信息化領(lǐng)域的應(yīng)用前景。本課題使用Visual Studio 2008作為開發(fā)工具,開發(fā)語言可以是C#,后臺數(shù)據(jù)庫可采用SQL Server 2005數(shù)據(jù)庫。小區(qū)停車管理系統(tǒng)主要由系統(tǒng)設(shè)置,停車位管理,固定車輛管理,車輛進(jìn)出登記,歷史記錄查詢五個部分組成。本課題主要功能詳解如下:系統(tǒng)設(shè)置:主要功能包括密碼的修改,

9、管理員用戶的添加與修改,收費(fèi)標(biāo)準(zhǔn)的設(shè)置等。停車位管理:主要功能實現(xiàn)車輛區(qū)域管理與固定車位管理,包括添加停車位區(qū)域,停車位區(qū)域管理,添加固定車位,固定車位的管理等。固定車輛管理:對小區(qū)車輛信息進(jìn)行登記并實現(xiàn)小區(qū)固定車輛的管理 。車輛進(jìn)出登記:主要通過車輛類型,車主,記錄編號,車牌,聯(lián)系方式,樓棟門牌等信息對停放車輛進(jìn)行管理。歷史記錄查詢:實現(xiàn)對以往登記過的車輛信息進(jìn)行檢索。2 智能QA設(shè)計2.1 系統(tǒng)技術(shù)概要2.1.1.NET平臺概述2.1.2WinForm程序概述2.1.3C#語言概述2.1.4 SQL Server 2005簡介SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由Mic

10、rosoft Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)SQL Server安裝界面用。SQL Server 2005 數(shù)據(jù)庫引擎提供完整的XML 支持。它還具有構(gòu)成最大的Web 站點的數(shù)據(jù)存儲組件所需的可伸縮性、可

11、用性和安全功能。SQL Server 2005 程序設(shè)計模型與 Windows DNA 構(gòu)架集成,用以開發(fā) Web 應(yīng)用程序,并且SQL Server 2005 支持 English Query 和 Microsoft 搜索服務(wù)等功能,在Web 應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能。同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用,從運(yùn)行 Microsoft Windows® 98 的便攜式電腦,到運(yùn)行 Microsoft Windows 2005 數(shù)據(jù)中心版的大型多處理器服務(wù)器。SQL Server 2005 企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型存支持等功能,使其得以升級到最

12、大 Web 站點所需的性能級別。2.2 總體設(shè)計2.2.1 系統(tǒng)物理環(huán)境配置當(dāng)前開發(fā)本系統(tǒng)硬件平臺的配置:1CPU:T6600 2.20GHz。2存:2.00 GB(三星 PC3-8500F DDR3 SDRAM 1066MHz)。3硬盤:320GB。4基本的輸入、輸出設(shè)備。系統(tǒng)軟件平臺的配置:如果說硬件是一個系統(tǒng)的身體,那么軟件則是一個系統(tǒng)的靈魂,一個系統(tǒng)設(shè)計的好壞,不僅要有正確的軟件開發(fā)思想,也應(yīng)該有良好的軟件開發(fā)工具,投資規(guī)劃與保險模塊所采用的軟件配置環(huán)境為:1操作系統(tǒng):Windows 7旗艦版Service Pack1。2數(shù)據(jù)庫軟件:Microsoft SQL Server 2005。

13、3系統(tǒng)開發(fā)軟件:Visual Studio 2008。2.2.2 功能結(jié)構(gòu)設(shè)計系統(tǒng)功能結(jié)構(gòu)圖如圖2-1所示。圖2-1 系統(tǒng)功能結(jié)構(gòu)圖本系統(tǒng)總體上由兩個模塊組成:管理員模塊和普通用戶模塊。下面就圖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ù)庫設(shè)計管理員信息表如表2-1所示。表2-1 管理員信息表字段名說 明類 型長 度可

14、否為空主鍵ID用戶編號varchar4否是 ADName用戶名稱varchar20否否 ADpass用戶密碼varchar20是否停車場區(qū)域劃分表如表2-2所示。表2-2 停車場區(qū)域劃分表字段名說 明類 型長 度可否為空主鍵ID自動編號int4否是 Pname區(qū)域名稱varchar20否否 Ptype停車位類型int2000否否 Pnum包含車位數(shù)int8否否流動停車位價格表2-3所示。表2-3流動停車位價格表字段名說 明類 型長 度可否為空主鍵ID自動編號int4否是Price價格 float否否固定停車位詳細(xì)表如表2-4所示。表2-4 固定停車位詳細(xì)信息表字段名說 明類 型長 度可否為空主

15、鍵ID自動編號int 4否是 PID所屬停車位區(qū)域int50否否 Cno車位編號varchar20否否 Price售價 float 50否否State是否賣出int小區(qū)車輛登記表如表2-5所示。表2-5小區(qū)車輛登記表字段名說 明類 型長 度可否為空主鍵CarNo賬單編號varchar 20否是UName車主varchar50否否UTel聯(lián)系方式varchar20否否UAddress樓棟門牌varchar 100否否CPID是否購買固定位int4否否車輛進(jìn)出停車表如表2-6所示。表2-6車輛進(jìn)出停車表字段名說 明類 型長 度可否為空主鍵ID自動編號int 4否是OrderNo系統(tǒng)編號varcha

16、r20否否UID是否登記車輛int20否否CTyp固定或流動車位int 20否否CarNo賬單編號varchar20否否UName車主varchar20否否Utel聯(lián)系方式varchar20否否UAddress樓棟門牌varchar100否否Price流動車位費(fèi)用float20否否BegTime開始停車時間datetime20否否EndTime離開時間datetime20否否AllPrice流動車位總費(fèi)用float20否否3 系統(tǒng)實現(xiàn)3.1 系統(tǒng)首頁實現(xiàn)用戶成功登錄后,進(jìn)入主界面窗口,在此窗口用戶可以進(jìn)入系統(tǒng)其他模塊:系統(tǒng)設(shè)置、停車位管理、固定車輛管理、車輛進(jìn)出登記、歷史記錄查詢、退出系統(tǒng)等;

17、用戶還可以快速瀏覽到小區(qū)當(dāng)前停車位使用情況,快捷方便,確保工作信息準(zhǔn)確無誤;用戶還可以針對車輛進(jìn)出進(jìn)行登記,提高工作效率。首頁界面如圖3-1所示。圖3-1 首頁界面3.2 登陸模塊實現(xiàn)運(yùn)行系統(tǒng),打開登錄界面,用戶輸入用戶名和登錄密碼,點擊“確定”按鈕,通過SQL語句系統(tǒng)將自動將用戶輸入信息與數(shù)據(jù)庫信息匹配, 數(shù)據(jù)庫中存在相應(yīng)的信息,用戶將可以成功登錄系統(tǒng),反之用戶登錄失敗,系統(tǒng)將提示用戶重新登錄。登陸界面如圖3-2所示。圖3-2 登陸界面3.3系統(tǒng)設(shè)置實現(xiàn)在進(jìn)行密碼修改功能時,系統(tǒng)需要用戶輸入舊密碼(ADPass 控件)、新密碼(ADPass1控件)、確認(rèn)密碼(ADPass2控件), 點擊“修

18、改”按鈕,系統(tǒng)執(zhí)行 button1_Click修改事件,首先驗證用戶是否完整輸入,以與輸入的新密碼和確認(rèn)密碼是否一致。如下所示:if (ADPass.Text.Trim().Equals("")ADPass.Focus();MessageBox.Show("請輸入舊密碼.");return;if (ADPass1.Text.Trim().Equals("")ADPass1.Focus();MessageBox.Show("請輸入新密碼.");return;elseif (!ADPass2.Text.Trim().E

19、quals(ADPass1.Text.Trim()ADPass2.Focus();MessageBox.Show("請輸入兩次輸入密碼不一致.");return;如果用戶沒有完整輸入,系統(tǒng)暫停,返回重新輸入。如果用戶完整輸入,系統(tǒng)繼續(xù)往下運(yùn)行,系統(tǒng)將繼續(xù)驗證用戶輸入的 舊密碼是否正確,密碼正確,系統(tǒng)繼續(xù)運(yùn)行,密碼錯誤系統(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)通過創(chuàng)建 SQL語句,調(diào)用 SqlHelper 類的ExecQuerySql 方法,向數(shù)據(jù)庫中匹配修改數(shù)據(jù),返回執(zhí)行影響的記錄數(shù)目,如果等于 0,表示修改失敗,沒有影響數(shù)據(jù)庫記錄數(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)入記錄修改頁面。如下代碼:/綁定數(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ì)信息在此窗口,可以實現(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流動車位收費(fèi)設(shè)置 圖 3-6 流動車輛收費(fèi)標(biāo)準(zhǔn)管理此功能模塊只有系統(tǒng)“總管理員”權(quán)限才能進(jìn)入,“普通”管理員權(quán)限不能進(jìn)入。在此模塊“總管理員”可以設(shè)置系統(tǒng)中流動車位的費(fèi)用,供系統(tǒng)收費(fèi)使用。 首先判斷是否完整輸入,只有完整輸入才能進(jìn)行下一步,否則系統(tǒng)返回,提示輸入,代碼如下:if (Price.Text.Trim() = "")MessageBox.Show("請輸入收費(fèi)價格.");Price.Focus()

31、;return;其次判斷本次輸入是修改還是添加數(shù)據(jù),即數(shù)據(jù)庫中是否已經(jīng)存在價格信息。添加:通過 Insert into 語句直接向數(shù)據(jù)庫中添加一條價格記錄信息,修改:則是在現(xiàn)有數(shù)據(jù)記錄基礎(chǔ)上,直接通過Update語句修改記錄。 代碼如下: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)價格修改成功.");this.Hide();elseMessageBox.Show("收費(fèi)價格修改失敗.");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)價格添加成功.");this.Hide();elseMessageBox.Show("收費(fèi)價格添加失敗.");Price.Focus();return;3.6 停車場區(qū)域管理 圖3-7停車區(qū)域管理小區(qū)的停車車場可以劃分為多個區(qū)域,合適安排使用,有的區(qū)域?qū)iT停放固定車位,有的區(qū)域?qū)iT停放流動車輛,每個區(qū)域停放固定數(shù)量的車輛,這樣即方便管理員的操作,也確保信息統(tǒng)計準(zhǔn)確。代碼如下:/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as

34、iid,ID,PName as 區(qū)域名稱,PNum as 車位個數(shù),case isnull(PType,0) when 1 then N'固定車位' else N'流動車位' 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 車位個數(shù),case isnull(PType,0) when 1 then N'固定車位' else N'流動車位' 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ù)據(jù)id ,并顯示修改頁面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();PlaceInfoAdd cadd = new PlaceInfoAdd(id);this.Close();cadd.Show();3.7固定停車位管理 圖 3-8 固定停車位管理小區(qū)的固定車位是指一些業(yè)主可以通過購買的方式長期使用自己的車位,固定車位明碼標(biāo)價,業(yè)主可以根據(jù)自己情況選擇,無需害怕回來的晚或者小區(qū)停放車輛過多而導(dǎo)致沒有地方停車。代碼如下:public CarParkMgr(string uid)Initial

38、izeComponent();BindList(); /加載頁面/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,b.PName as 停車區(qū)域,a.CNo as 車位編號,Price as '銷售價格(元)',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 車位編號,Price as '銷售價格(元)',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ù)據(jù)id ,并顯示修改頁面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)計管理。業(yè)主

43、可以選擇使用流動車位,或者購買自己的固定車位,2種方式為業(yè)主提供方便。代碼如下:public CarInfoMgr(string uid)InitializeComponent();BindList(); /加載頁面/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,a.CarNO as 車輛編號,a.UName as 車主,a.UTel as 聯(lián)系方式,a.UAddress as 樓棟門牌,case isnull(a.CPID,0) when

44、 0 then N'流動車位' 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 車輛編號,a.UName as 車主,a.UTel as 聯(lián)

46、系方式,a.UAddress as 樓棟門牌,case isnull(a.CPID,0) when 0 then N'流動車位' 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ù)據(jù)id ,并顯示修改頁面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();CarInfoAdd cadd = new CarInfoAdd(id);this.Close();cadd.Show(); 圖 3-10固定車輛信息管理員在此窗口可

49、以添加、修改、刪除業(yè)主登記車輛信息。添加代碼:判斷是修改還是添加,當(dāng)管理員添加固定車輛信息時,系統(tǒng)首先驗證信息是否完整輸入,完整輸入進(jìn)入下一步,驗證輸入的車牌是否已存在信息,存在通過彈出窗口提示用戶信息已存在,不能重復(fù)輸入,不存在將信息保存數(shù)據(jù)庫。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)主頁面中 輸入車牌,選擇 “外出登記”或者“進(jìn)入登記”按鈕,系統(tǒng)將自動進(jìn)入車輛登記界面,如圖 5-11 即為車輛外出登記,系統(tǒng)根據(jù)輸入的 車牌自動列表車輛在系統(tǒng)中的信息,以與車輛停放時錄入的信息,以與進(jìn)入小區(qū)時間,如果車輛是使用的流動車位,點擊“計算費(fèi)用”按鈕,系統(tǒng)將自動計算車輛的停車費(fèi)用

56、。如果是固定車位車輛,則只登記信息,無需收取費(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論