




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 大連外國語學院 .NET WinForm編程課程設計 .NET WinForm編程課程設計 題目: 停車場管理系統(tǒng) 學院/系 軟件學院 專 業(yè) 信息管理與信息系統(tǒng)專業(yè)(日英強化) 年 級 2009級 學 號 009880924 作者姓名 劉雷 2012年 7月 5日摘 要隨著我國現(xiàn)代化進程的不斷加快,私家車的數(shù)量急劇增加,各類停車場的車流量不斷增多,對機動車的保管越來越成為社會倍受關注的問題。本論文針對現(xiàn)在普遍采用的人工收費管理方法存在的弊端,提出了一套由C# 開發(fā)設計的小區(qū)停車場管理系統(tǒng),數(shù)據(jù)庫采用SqlServer 建立,使用ODBC 訪問數(shù)據(jù)庫,使用ADO 操作數(shù)據(jù)庫,采用流行的C/S
2、 結構,也就是客戶端/服務器模式。本課題研究的主要內容根據(jù)不同的情況將車主分為兩種然后合理化停車的一個系統(tǒng)。第一種是固定車主,通過物業(yè)購買固定車位,可以選擇月付費也可以選擇年付費。固定車主的優(yōu)勢在于無論什么情況都擁有自己的停車位置不會被別人占用。第二種是臨時車主,采用的是一次性付費,記錄進入時間和出去時間,然后進行繳費。小區(qū)停車庫進出口分別擁有2個車道。管理員通過系統(tǒng)的查詢功能辨別車主是否是固定車主,如果是固定車主就開放1車道進入固定車主的停車庫 如果是臨時車主就開放2車道進入臨時車主停車庫。根據(jù)該系統(tǒng)的功能共分為七個模塊:基礎設置模塊、停車位管理模塊、固定車輛管理模塊、車輛進出登記模塊、記錄
3、查詢模塊,文中對各模塊的功能、操作界面、工作流程做了詳細的介紹。關鍵詞: 管理系統(tǒng),C#,SqlServer,C/S目 錄1 緒論11.1 選題意義11.2 小區(qū)停車管理系統(tǒng)的發(fā)展現(xiàn)狀11.3 本系統(tǒng)概述12 系統(tǒng)設計32.1 系統(tǒng)技術概要32.1.1 .NET平臺概述32.1.2 WinForm程序概述32.1.3 C#語言概述32.1.4 SQL Server 2005簡介32.2 總體設計32.2.1 系統(tǒng)物理環(huán)境配置32.2.2 功能結構設計32.3 數(shù)據(jù)庫設計43 系統(tǒng)實現(xiàn)63.1 系統(tǒng)首頁實現(xiàn)63.2 登陸模塊實現(xiàn)63.3 系統(tǒng)設置實現(xiàn)73.4管理員用戶管理73.5 流動車位收費設
4、置73.6停車場區(qū)域管理73.7固定車位管理73.8固定車輛信息管理73.9車輛進出登記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)71 緒論1.1 選題意義小區(qū)停車場管理系統(tǒng)的設計目的是要將車輛出入停車場以及對其收費等信息通過計算機進行管理。為收費登記人員提供便利。在調研分析的基礎上,通過對現(xiàn)在工作流程的整合和改進,希望探索出一種停車收費流程模式,從中領會系統(tǒng)工程的思想,掌握系統(tǒng)開發(fā)的流程和方法,不斷總結經(jīng)驗和教訓。隨著社會信息化的不斷發(fā)展和停車場管理工作的日益完善
5、,停車收費登記會越來越依賴信息系統(tǒng)的支持,所以本系統(tǒng)的開發(fā)要盡量依據(jù)停車場的實際情況,認識到調研的重要性,切實做到從實際出發(fā),開發(fā)出具有一定使用價值的小區(qū)停車場管理系統(tǒng)。開發(fā)小區(qū)停車場管理系統(tǒng)主要是為以后商業(yè)設施的信息化管理做基礎,同時也為小區(qū)停車場管理系統(tǒng)的開發(fā)過程提供一個模式,以后通過不斷強化系統(tǒng)性能,優(yōu)化系統(tǒng)功能,提高停車場現(xiàn)代化管理水平。小區(qū)停車場管理系統(tǒng)的實施具有如下現(xiàn)實意義:第一,使車輛出入的登記收費操作過程更加簡便。第二,系統(tǒng)形成列表對入庫車輛進行統(tǒng)計,方便查詢。第三,數(shù)據(jù)安全性高,不易丟失。1.2 小區(qū)停車管理的發(fā)展現(xiàn)狀 隨著計算機產(chǎn)業(yè)的迅速發(fā)展,電子計算機已廣泛的應用于信息管
6、理、文字處理、輔助設計、輔助教學及人們的日常生活中。特別是在計算機的操作系統(tǒng)具有了圖形化的界面后,使用計算機已經(jīng)不再是某些專業(yè)人員的專利,各行各業(yè)的人們不需要經(jīng)過專業(yè)化的訓練就能自如的在計算機上進行各種復雜的操作。時下,為了能創(chuàng)造更大的經(jīng)濟效益和方便管理,越來越多的管理設施迫切需要引入現(xiàn)代化的管理手段,而計算機的大容量操作,精確的計算,使它成為設施管理不可缺少的手段之一,但隨著計算機應用的不斷深入,設施對軟件的需求也不斷增加,越來越多的設施希望擁有適合自己需要的特殊軟件來滿足自己的特殊要求。對于當今停車場題來說,其車輛進出量大,各種信息管理內容復雜,查詢和管理出入車輛信息和車輛設計信息等工作由
7、人工完成將是很累的,也許還很不切實際,不僅浪費了許多人力物力資源,而且還很容易出現(xiàn)差錯,有一個符合要求的軟件對其進行智能便了,對所有信息有了一個全局的掌握。對于一名專業(yè)的信息技術人員來說,如何最大限度地利用車輛管理部門多年來在數(shù)據(jù)庫系統(tǒng)上的投資,是每一個從事信息技術工作的專業(yè)人員都應該考慮的問題。現(xiàn)在全國的很多大型停車場的車輛出入登記都采用了計算機管理,這樣就需要一種管理軟件來為車輛者服務,協(xié)助他們來完成管理數(shù)量巨大的車輛出入登記收費這么一個龐大的工作。1.3 本系統(tǒng)概述小區(qū)停車管理系統(tǒng),即實現(xiàn)小區(qū)停車的信息化登記查詢系統(tǒng),是適應我國現(xiàn)代化進程加快,私家車數(shù)量急劇增加,停車管理難的現(xiàn)狀而發(fā)展的
8、信息化管理系統(tǒng)。其核心思想是使停車收費管理實現(xiàn)科學化、規(guī)范化,增強工作人員對選課流程的管理能力,從而提高工作效率,并將帶動停車場的其他信息化建設,推動停車場的信息化水平更上一層樓。本文首先介紹了小區(qū)停車系統(tǒng)發(fā)展的現(xiàn)狀,然后提出一個基于小區(qū)停車管理系統(tǒng)的數(shù)字信息化領域的架構,并對相關關鍵技術進行了討論,最后說明了小區(qū)停車管理系統(tǒng)在數(shù)字信息化領域的應用前景。本課題使用Visual Studio 2008作為開發(fā)工具,開發(fā)語言可以是C#,后臺數(shù)據(jù)庫可采用SQL Server 2005數(shù)據(jù)庫。小區(qū)停車管理系統(tǒng)主要由系統(tǒng)設置,停車位管理,固定車輛管理,車輛進出登記,歷史記錄查詢五個部分組成。本課題主要功
9、能詳解如下:系統(tǒng)設置:主要功能包括密碼的修改,管理員用戶的添加與修改,收費標準的設置等。停車位管理:主要功能實現(xiàn)車輛區(qū)域管理與固定車位管理,包括添加停車位區(qū)域,停車位區(qū)域管理,添加固定車位,固定車位的管理等。固定車輛管理:對小區(qū)車輛信息進行登記并實現(xiàn)小區(qū)固定車輛的管理 。車輛進出登記:主要通過車輛類型,車主姓名,記錄編號,車牌號碼,聯(lián)系方式,樓棟門牌等信息對停放車輛進行管理。歷史記錄查詢:實現(xiàn)對以往登記過的車輛信息進行檢索。 22 智能QA設計2.1 系統(tǒng)技術概要2.1.1 .NET平臺概述2.1.2 WinForm程序概述2.1.3 C#語言概述2.1.4 SQL Server 2005簡介
10、SQL Server 是一個關系數(shù)據(jù)庫管理系統(tǒng)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應SQL Server安裝界面用。SQL Server 2005 數(shù)據(jù)庫引擎提供完整的XML 支持
11、。它還具有構成最大的Web 站點的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能。SQL Server 2005 程序設計模型與 Windows DNA 構架集成,用以開發(fā) Web 應用程序,并且SQL Server 2005 支持 English Query 和 Microsoft 搜索服務等功能,在Web 應用程序中包含了用戶友好的查詢和強大的搜索功能。同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用,從運行 Microsoft Windows® 98 的便攜式電腦,到運行 Microsoft Windows 2005 數(shù)據(jù)中心版的大型多處理器服務器。SQL Server 2005 企
12、業(yè)版支持聯(lián)合服務器、索引視圖和大型內存支持等功能,使其得以升級到最大 Web 站點所需的性能級別。2.2 總體設計2.2.1 系統(tǒng)物理環(huán)境配置當前開發(fā)本系統(tǒng)硬件平臺的配置:1CPU:T6600 2.20GHz。2內存:2.00 GB(三星 PC3-8500F DDR3 SDRAM 1066MHz)。3硬盤:320GB。4基本的輸入、輸出設備。系統(tǒng)軟件平臺的配置:如果說硬件是一個系統(tǒng)的身體,那么軟件則是一個系統(tǒng)的靈魂,一個系統(tǒng)設計的好壞,不僅要有正確的軟件開發(fā)思想,也應該有良好的軟件開發(fā)工具,投資規(guī)劃與保險模塊所采用的軟件配置環(huán)境為:1操作系統(tǒng):Windows 7旗艦版Service Pack1
13、。2數(shù)據(jù)庫軟件:Microsoft SQL Server 2005。3系統(tǒng)開發(fā)軟件:Visual Studio 2008。2.2.2 功能結構設計系統(tǒng)功能結構圖如圖2-1所示。圖2-1 系統(tǒng)功能結構圖本系統(tǒng)總體上由兩個模塊組成:管理員模塊和普通用戶模塊。下面就圖2-1,給予分別描述。1管理員模塊組成:(1) 管理員管理子模塊(2) 收費標準設置管理子模塊(3) 停車位區(qū)域與固定車輛管理子模塊(添加,刪除與檢索)(4) 車輛進出登記(5) 歷史記錄查詢2普通用戶模塊組成:(1) 用戶登錄管理子模塊(2) 固定車輛管理子模塊(3) 車輛進出登記管理(4) 歷史記錄查詢2.2.3 數(shù)據(jù)庫設計管理員信
14、息表如表2-1所示。表2-1 管理員信息表字段名說 明類 型長 度可否為空主鍵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否否固定停車位詳細表如表2-4
15、所示。表2-4 固定停車位詳細信息表字段名說 明類 型長 度可否為空主鍵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否否車輛進出停車表如表2-6所示。表2-6車輛進出停車表字段名說 明類 型長
16、 度可否為空主鍵ID自動編號int 4否是OrderNo系統(tǒng)編號varchar20否否UID是否登記車輛int20否否CTyp固定或流動車位int 20否否CarNo賬單編號varchar20否否UName車主姓名varchar20否否Utel聯(lián)系方式varchar20否否UAddress樓棟門牌varchar100否否Price流動車位費用float20否否BegTime開始停車時間datetime20否否EndTime離開時間datetime20否否AllPrice流動車位總費用float20否否3 系統(tǒng)實現(xiàn)3.1 系統(tǒng)首頁實現(xiàn)用戶成功登錄后,進入主界面窗口,在此窗口用戶可以進入系統(tǒng)其他模
17、塊:系統(tǒng)設置、停車位管理、固定車輛管理、車輛進出登記、歷史記錄查詢、退出系統(tǒng)等;用戶還可以快速瀏覽到小區(qū)當前停車位使用情況,快捷方便,確保工作信息準確無誤;用戶還可以針對車輛進出進行登記,提高工作效率。首頁界面如圖3-1所示。圖3-1 首頁界面3.2 登陸模塊實現(xiàn)運行系統(tǒng),打開登錄界面,用戶輸入用戶名和登錄密碼,點擊“確定”按鈕,通過SQL語句系統(tǒng)將自動將用戶輸入信息與數(shù)據(jù)庫信息匹配, 數(shù)據(jù)庫中存在相應的信息,用戶將可以成功登錄系統(tǒng),反之用戶登錄失敗,系統(tǒng)將提示用戶重新登錄。登陸界面如圖3-2所示。圖3-2 登陸界面3.3系統(tǒng)設置實現(xiàn)在進行密碼修改功能時,系統(tǒng)需要用戶輸入舊密碼(ADPass
18、控件)、新密碼(ADPass1控件)、確認密碼(ADPass2控件), 點擊“修改”按鈕,系統(tǒng)執(zhí)行 button1_Click修改事件,首先驗證用戶是否完整輸入,以及輸入的新密碼和確認密碼是否一致。如下所示:if (ADPass.Text.Trim().Equals("")ADPass.Focus();MessageBox.Show("請輸入舊密碼.");return;if (ADPass1.Text.Trim().Equals("")ADPass1.Focus();MessageBox.Show("請輸入新密碼."
19、;);return;elseif (!ADPass2.Text.Trim().Equals(ADPass1.Text.Trim()ADPass2.Focus();MessageBox.Show("請輸入兩次輸入密碼不一致.");return;如果用戶沒有完整輸入,系統(tǒng)暫停,返回重新輸入。如果用戶完整輸入,系統(tǒng)繼續(xù)往下運行,系統(tǒng)將繼續(xù)驗證用戶輸入的 舊密碼是否正確,密碼正確,系統(tǒng)繼續(xù)運行,密碼錯誤系統(tǒng)暫停,返回重新輸入,如下代碼所示:DataTable dt = SqlHelper.ExecQuerySql("select ID,ADName,ADPass,ADNo
20、,ADFlag from AdminInfo where id=" + 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
21、.Text.Trim() + "");if (i > 0)MessageBox.Show("密碼修改成功.");elseMessageBox.Show("密碼修改失敗.");ADPass.Focus();return;系統(tǒng)通過創(chuàng)建 SQL語句,調用 SqlHelper 類的ExecQuerySql 方法,向數(shù)據(jù)庫中匹配修改數(shù)據(jù),返回執(zhí)行影響的記錄數(shù)目,如果等于 0,表示修改失敗,沒有影響數(shù)據(jù)庫記錄數(shù),如果大于0,表示修改成功。系統(tǒng)設置界面如圖3-3所示。圖3-3 系統(tǒng)設置界面 3.4 管理員用戶管理 圖 3-4 管理員用戶管理此
22、功能模塊只有系統(tǒng)“總管理員”權限才能進入,“普通”管理員權限不能進入。在此模塊“總管理員”可以添加、修改、刪除、查詢所有系統(tǒng)管理員的信息,雙擊記錄列表,進入記錄修改頁面。如下代碼:/綁定數(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 管理員權限 from AdminI
23、nfo 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.DataSource = dt;gv_1.Columns1.Visible = false;private void button1_Click(object sender, EventArgs e)DataTable dt = SqlHelper.ExecQuerySql("select '' a
24、s iid,ID,ADName as 用戶名,case isnull(ADFlag,0) when 1 then N'總管理員' else N'普通管理員' end as 管理員權限 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).To
25、String();gv_1.ReadOnly = true;gv_1.DataSource = dt;gv_1.Columns1.Visible = false; 圖 3-5 管理員詳細信息在此窗口,可以實現(xiàn)管理員信息添加、信息修改、信息刪除以及詳細信息查看。添加代碼如下:首先判斷添加的用戶名是否存在,用戶名存在,不能繼續(xù)添加, if (SqlHelper.ExecQuerySql("select id from AdminInfo where ADName=N'" + ADName.Text.Trim() + "'").Rows.Cou
26、nt > 0)MessageBox.Show("輸入用戶名已存在,不能重復添加.");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);
27、if (i > 0) /添加成功MessageBox.Show("信息添加成功.");this.Hide();elseMessageBox.Show("信息添加失敗.");ADName.Focus();return;修改代碼如下:首先判斷修改的用戶名是否存在,用戶名存在,不能繼續(xù)添加,if (SqlHelper.ExecQuerySql("select id from AdminInfo where ADName=N'" + ADName.Text.Trim() + "' and id<>&
28、quot; + lab_id.Text.Trim().Rows.Count > 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.T
29、ext.Trim(), "", adflag, lab_id.Text.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) /刪除
30、成功MessageBox.Show("信息刪除成功.");this.Hide();elseMessageBox.Show("信息刪除失敗.");ADName.Focus();return;3.5流動車位收費設置 圖 3-6 流動車輛收費標準管理此功能模塊只有系統(tǒng)“總管理員”權限才能進入,“普通”管理員權限不能進入。在此模塊“總管理員”可以設置系統(tǒng)中流動車位的費用,供系統(tǒng)收費使用。 首先判斷是否完整輸入,只有完整輸入才能進行下一步,否則系統(tǒng)返回,提示輸入,代碼如下:if (Price.Text.Trim() = "")MessageBo
31、x.Show("請輸入收費價格.");Price.Focus();return; 其次判斷本次輸入是修改還是添加數(shù)據(jù),即數(shù)據(jù)庫中是否已經(jīng)存在價格信息。添加:通過 Insert into 語句直接向數(shù)據(jù)庫中添加一條價格記錄信息,修改:則是在現(xiàn)有數(shù)據(jù)記錄基礎上,直接通過Update語句修改記錄。 代碼如下:if (lab_id.Text != "0")/添加int i = SqlHelper.ExecUpdateSql(string.Format("update PriceInfo set Price=N'0' where id=1
32、", Price.Text.Trim(), lab_id.Text.Trim();if (i > 0) /修改成功MessageBox.Show("收費價格修改成功.");this.Hide();elseMessageBox.Show("收費價格修改失敗.");Price.Focus();return;else/添加int i = SqlHelper.ExecUpdateSql(string.Format("insert into PriceInfo(Price) values(0)", Price.Text.Trim
33、();if (i > 0) /添加成功MessageBox.Show("收費價格添加成功.");this.Hide();elseMessageBox.Show("收費價格添加失敗.");Price.Focus();return;3.6 停車場區(qū)域管理 圖3-7停車區(qū)域管理小區(qū)的停車車場可以劃分為多個區(qū)域,合適安排使用,有的區(qū)域專門停放固定車位,有的區(qū)域專門停放流動車輛,每個區(qū)域停放固定數(shù)量的車輛,這樣即方便管理員的操作,也確保信息統(tǒng)計準確。代碼如下:/綁定數(shù)據(jù)private void BindList()DataTable dt = SqlHelp
34、er.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 order by PName");for (int i = 0; i < dt.Rows.Count; i+)dt.Rowsi0 = (i + 1).ToString();gv_1.ReadOnly = true;gv_1.DataSo
35、urce = dt;gv_1.Columns1.Visible = false;private 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
36、and (PName like N'%" + ObjName.Text.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, DataGridViewCellE
37、ventArgs e)if (e.RowIndex < (gv_1.Rows.Count - 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è)主可以通過購買的方式長期使用自己的車位,固定車位明碼標價,業(yè)主可以根據(jù)自己情況選擇,無需害怕回來的晚或者小區(qū)停放車輛過多而導致沒有地方停
38、車。代碼如下:public CarParkMgr(string uid)InitializeComponent();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'空閑
39、9; end as 使用情況 from CarParkInfo a left join 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
40、e)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 PlaceInfo b on a.PID=b.id where 1=1 and (a.CNo like N'
41、;%" + 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.Columns1.Visible = false;/gv_1.Columns2
42、.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();CarParkAdd cadd = new CarParkAdd(id);this.Close();cadd.Show();3.8固定車輛信息管理 圖 3-9 固定車輛信息管
43、理固定車輛是指小區(qū)業(yè)主將自己的車輛登記,系統(tǒng)中保存業(yè)主及其車輛信息,方便統(tǒng)計管理。業(yè)主可以選擇使用流動車位,或者購買自己的固定車位,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.
44、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.ID wh
45、ere 1=1 order by CarNO");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("select '' as iid,a.I
46、D,a.CarNO as 車輛編號,a.UName as 車主,a.UTel as 聯(lián)系方式,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
47、.CPID=b.ID left join PlaceInfo c on b.PID=c.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.Rea
48、dOnly = 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.Count - 1)/雙擊數(shù)據(jù)時,取得數(shù)據(jù)id ,并顯示修改頁面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();CarInfoAdd cadd = new CarInfoAdd(id);thi
49、s.Close();cadd.Show(); 圖 3-10固定車輛信息管理員在此窗口可以添加、修改、刪除業(yè)主登記車輛信息。添加代碼:判斷是修改還是添加,當管理員添加固定車輛信息時,系統(tǒng)首先驗證信息是否完整輸入,完整輸入進入下一步,驗證輸入的車牌號碼是否已存在信息,存在通過彈出窗口提示用戶信息已存在,不能重復輸入,不存在將信息保存數(shù)據(jù)庫。if (lab_id.Text != "0")/修改 ,判斷用戶名是否存在if (SqlHelper.ExecQuerySql("select id from CarInfo where CarNO=N'" + C
50、arNO.Text.Trim() + "' and id<>" + 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
51、9;3',CPID=4,UPriceInfo=N'5' where id=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.ExecUpdat
52、eSql("update CarParkInfo set state=1 where 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 (SqlHel
53、per.ExecQuerySql("select id from CarInfo where CarNO=N'" + CarNO.Text.Trim() + "'").Rows.Count > 0)MessageBox.Show("輸入?yún)^(qū)域名已存在,不能重復添加.");CarNO.Focus();return; int i = SqlHelper.ExecUpdateSql(string.Format("insert into CarInfo(CarNO,UName,UTel,UAddress,CPID
54、,UPriceInfo,addtime) values(N'0',N'1',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.ExecUpdate
55、Sql("update CarParkInfo set state=1 where id=" + adflag);MessageBox.Show("信息添加成功.");this.Hide();elseMessageBox.Show("信息添加失敗.");CarNO.Focus();return;39車輛進、出登記圖 3-11 車輛外出登記在系統(tǒng)主頁面中 輸入車牌號碼,選擇 “外出登記”或者“進入登記”按鈕,系統(tǒng)將自動進入車輛登記界面,如圖 5-11 即為車輛外出登記,系統(tǒng)根據(jù)輸入的 車牌號碼自動列表車輛在系統(tǒng)中的信息,以及車輛停放時錄
56、入的信息,以及進入小區(qū)時間,如果車輛是使用的流動車位,點擊“計算費用”按鈕,系統(tǒng)將自動計算車輛的停車費用。如果是固定車位車輛,則只登記信息,無需收取費用。代碼如下: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+'(' + convert(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 >
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權質押借款合同范本
- 中小學師德師風學習心得體會(5篇)
- 施工過程回顧合同
- 商場餐飲抽點合同協(xié)議
- 快遞站點抵押合同協(xié)議
- 正規(guī)薪資合同協(xié)議模板
- 商業(yè)用房銷售協(xié)議書模板
- 民俗舊貨買賣合同協(xié)議
- 品牌維修外包合同協(xié)議
- 品牌小吃加盟協(xié)議合同書
- 2025-2030中國寵物行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景預測報告
- AGC-AVC培訓課件教學課件
- 境外道路貨物運輸應急預案
- 二極管整流濾波電路課件
- JC01基礎心理學單科作業(yè)題匯總(含解析)
- 中考英語讀寫綜合練習
- 混凝土供應保證方案 2
- 慢性阻塞性肺疾病入院記錄模板-病歷書寫
- 新疆維吾爾自治區(qū)和田地區(qū)各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細及行政區(qū)劃代碼
- 軟件測試技術課程教學大綱
- 液壓與氣壓傳動完整版課件
評論
0/150
提交評論