




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 . . . .NET WinForm编程课程设计 题目: 停车场管理系统学院/系 软件学院 专 业 信息管理与信息系统专业(日英强化)年 级 2009级 学 号 009880924 作者 雷 2012年 7月 5日摘 要随着我国现代化进程的不断加快,私家车的数量急剧增加,各类停车场的车流量不断增多,对机动车的保管越来越成为社会倍受关注的问题。本论文针对现在普遍采用的人工收费管理方法存在的弊端,提出了一套由C# 开发设计的小区停车场管理系统,数据库采用SqlServer 建立,使用ODBC 访问数据库,使用ADO 操作数据库,采用流行的C/S 结构,也就是客户端/服务器模式。本课题研究的主要容
2、根据不同的情况将车主分为两种然后合理化停车的一个系统。第一种是固定车主,通过物业购买固定车位,可以选择月付费也可以选择年付费。固定车主的优势在于无论什么情况都拥有自己的停车位置不会被别人占用。第二种是临时车主,采用的是一次性付费,记录进入时间和出去时间,然后进行缴费。小区停车库进出口分别拥有2个车道。管理员通过系统的查询功能辨别车主是否是固定车主,如果是固定车主就开放1车道进入固定车主的停车库 如果是临时车主就开放2车道进入临时车主停车库。根据该系统的功能共分为七个模块:基础设置模块、停车位管理模块、固定车辆管理模块、车辆进出登记模块、记录查询模块,文中对各模块的功能、操作界面、工作流程做了详
3、细的介绍。关键词: 管理系统,C#,SqlServer,C/S目 录1 绪论11.1 选题意义11.2 小区停车管理系统的发展现状11.3 本系统概述12 系统设计32.1 系统技术概要32.1.1 .NET平台概述32.1.2 WinForm程序概述32.1.3 C#语言概述32.1.4 SQL Server 2005简介32.2 总体设计32.2.1 系统物理环境配置32.2.2 功能结构设计32.3 数据库设计43 系统实现63.1 系统首页实现63.2 登陆模块实现63.3 系统设置实现73.4管理员用户管理73.5流动车位收费设置73.6停车场区域管理73.7固定车位管理73.8固定
4、车辆信息管理73.9车辆进出登记73.10历史记录查询73.11退出系统73.3 答案模块实现73.3 答案模块实现73.3 答案模块实现73.3 答案模块实现73.3 答案模块实现73.3 答案模块实现746 / 501 绪论1.1 选题意义小区停车场管理系统的设计目的是要将车辆出入停车场以与对其收费等信息通过计算机进行管理。为收费登记人员提供便利。在调研分析的基础上,通过对现在工作流程的整合和改进,希望探索出一种停车收费流程模式,从中领会系统工程的思想,掌握系统开发的流程和方法,不断总结经验和教训。随着社会信息化的不断发展和停车场管理工作的日益完善,停车收费登记会越来越依赖信息系统的支持,
5、所以本系统的开发要尽量依据停车场的实际情况,认识到调研的重要性,切实做到从实际出发,开发出具有一定使用价值的小区停车场管理系统。开发小区停车场管理系统主要是为以后商业设施的信息化管理做基础,同时也为小区停车场管理系统的开发过程提供一个模式,以后通过不断强化系统性能,优化系统功能,提高停车场现代化管理水平。小区停车场管理系统的实施具有如下现实意义:第一,使车辆出入的登记收费操作过程更加简便。第二,系统形成列表对入库车辆进行统计,方便查询。第三,数据安全性高,不易丢失。1.2 小区停车管理的发展现状 随着计算机产业的迅速发展,电子计算机已广泛的应用于信息管理、文字处理、辅助设计、辅助教学与人们的日
6、常生活中。特别是在计算机的操作系统具有了图形化的界面后,使用计算机已经不再是某些专业人员的专利,各行各业的人们不需要经过专业化的训练就能自如的在计算机上进行各种复杂的操作。时下,为了能创造更大的经济效益和方便管理,越来越多的管理设施迫切需要引入现代化的管理手段,而计算机的大容量操作,精确的计算,使它成为设施管理不可缺少的手段之一,但随着计算机应用的不断深入,设施对软件的需求也不断增加,越来越多的设施希望拥有适合自己需要的特殊软件来满足自己的特殊要求。对于当今停车场题来说,其车辆进出量大,各种信息管理容复杂,查询和管理出入车辆信息和车辆设计信息等工作由人工完成将是很累的,也许还很不切实际,不仅浪
7、费了许多人力物力资源,而且还很容易出现差错,有一个符合要求的软件对其进行智能便了,对所有信息有了一个全局的掌握。对于一名专业的信息技术人员来说,如何最大限度地利用车辆管理部门多年来在数据库系统上的投资,是每一个从事信息技术工作的专业人员都应该考虑的问题。现在全国的很多大型停车场的车辆出入登记都采用了计算机管理,这样就需要一种管理软件来为车辆者服务,协助他们来完成管理数量巨大的车辆出入登记收费这么一个庞大的工作。1.3 本系统概述小区停车管理系统,即实现小区停车的信息化登记查询系统,是适应我国现代化进程加快,私家车数量急剧增加,停车管理难的现状而发展的信息化管理系统。其核心思想是使停车收费管理实
8、现科学化、规化,增强工作人员对选课流程的管理能力,从而提高工作效率,并将带动停车场的其他信息化建设,推动停车场的信息化水平更上一层楼。本文首先介绍了小区停车系统发展的现状,然后提出一个基于小区停车管理系统的数字信息化领域的架构,并对相关关键技术进行了讨论,最后说明了小区停车管理系统在数字信息化领域的应用前景。本课题使用Visual Studio 2008作为开发工具,开发语言可以是C#,后台数据库可采用SQL Server 2005数据库。小区停车管理系统主要由系统设置,停车位管理,固定车辆管理,车辆进出登记,历史记录查询五个部分组成。本课题主要功能详解如下:系统设置:主要功能包括密码的修改,
9、管理员用户的添加与修改,收费标准的设置等。停车位管理:主要功能实现车辆区域管理与固定车位管理,包括添加停车位区域,停车位区域管理,添加固定车位,固定车位的管理等。固定车辆管理:对小区车辆信息进行登记并实现小区固定车辆的管理 。车辆进出登记:主要通过车辆类型,车主,记录编号,车牌,联系方式,楼栋门牌等信息对停放车辆进行管理。历史记录查询:实现对以往登记过的车辆信息进行检索。2 智能QA设计2.1 系统技术概要2.1.1.NET平台概述2.1.2WinForm程序概述2.1.3C#语言概述2.1.4 SQL Server 2005简介SQL Server 是一个关系数据库管理系统。它最初是由Mic
10、rosoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。SQL Server 2005 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可
11、用性和安全功能。SQL Server 2005 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2005 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows® 98 的便携式电脑,到运行 Microsoft Windows 2005 数据中心版的大型多处理器服务器。SQL Server 2005 企业版支持联合服务器、索引视图和大型存支持等功能,使其得以升级到最
12、大 Web 站点所需的性能级别。2.2 总体设计2.2.1 系统物理环境配置当前开发本系统硬件平台的配置:1CPU:T6600 2.20GHz。2存:2.00 GB(三星 PC3-8500F DDR3 SDRAM 1066MHz)。3硬盘:320GB。4基本的输入、输出设备。系统软件平台的配置:如果说硬件是一个系统的身体,那么软件则是一个系统的灵魂,一个系统设计的好坏,不仅要有正确的软件开发思想,也应该有良好的软件开发工具,投资规划与保险模块所采用的软件配置环境为:1操作系统:Windows 7旗舰版Service Pack1。2数据库软件:Microsoft SQL Server 2005。
13、3系统开发软件:Visual Studio 2008。2.2.2 功能结构设计系统功能结构图如图2-1所示。图2-1 系统功能结构图本系统总体上由两个模块组成:管理员模块和普通用户模块。下面就图2-1,给予分别描述。1管理员模块组成:(1) 管理员管理子模块(2) 收费标准设置管理子模块(3) 停车位区域与固定车辆管理子模块(添加,删除与检索)(4) 车辆进出登记(5) 历史记录查询2普通用户模块组成:(1) 用户登录管理子模块(2) 固定车辆管理子模块(3) 车辆进出登记管理(4) 历史记录查询2.2.3 数据库设计管理员信息表如表2-1所示。表2-1 管理员信息表字段名说 明类 型长 度可
14、否为空主键ID用户编号varchar4否是 ADName用户名称varchar20否否 ADpass用户密码varchar20是否停车场区域划分表如表2-2所示。表2-2 停车场区域划分表字段名说 明类 型长 度可否为空主键ID自动编号int4否是 Pname区域名称varchar20否否 Ptype停车位类型int2000否否 Pnum包含车位数int8否否流动停车位价格表2-3所示。表2-3流动停车位价格表字段名说 明类 型长 度可否为空主键ID自动编号int4否是Price价格 float否否固定停车位详细表如表2-4所示。表2-4 固定停车位详细信息表字段名说 明类 型长 度可否为空主
15、键ID自动编号int 4否是 PID所属停车位区域int50否否 Cno车位编号varchar20否否 Price售价 float 50否否State是否卖出int小区车辆登记表如表2-5所示。表2-5小区车辆登记表字段名说 明类 型长 度可否为空主键CarNo账单编号varchar 20否是UName车主varchar50否否UTel联系方式varchar20否否UAddress楼栋门牌varchar 100否否CPID是否购买固定位int4否否车辆进出停车表如表2-6所示。表2-6车辆进出停车表字段名说 明类 型长 度可否为空主键ID自动编号int 4否是OrderNo系统编号varcha
16、r20否否UID是否登记车辆int20否否CTyp固定或流动车位int 20否否CarNo账单编号varchar20否否UName车主varchar20否否Utel联系方式varchar20否否UAddress楼栋门牌varchar100否否Price流动车位费用float20否否BegTime开始停车时间datetime20否否EndTime离开时间datetime20否否AllPrice流动车位总费用float20否否3 系统实现3.1 系统首页实现用户成功登录后,进入主界面窗口,在此窗口用户可以进入系统其他模块:系统设置、停车位管理、固定车辆管理、车辆进出登记、历史记录查询、退出系统等;
17、用户还可以快速浏览到小区当前停车位使用情况,快捷方便,确保工作信息准确无误;用户还可以针对车辆进出进行登记,提高工作效率。首页界面如图3-1所示。图3-1 首页界面3.2 登陆模块实现运行系统,打开登录界面,用户输入用户名和登录密码,点击“确定”按钮,通过SQL语句系统将自动将用户输入信息与数据库信息匹配, 数据库中存在相应的信息,用户将可以成功登录系统,反之用户登录失败,系统将提示用户重新登录。登陆界面如图3-2所示。图3-2 登陆界面3.3系统设置实现在进行密码修改功能时,系统需要用户输入旧密码(ADPass 控件)、新密码(ADPass1控件)、确认密码(ADPass2控件), 点击“修
18、改”按钮,系统执行 button1_Click修改事件,首先验证用户是否完整输入,以与输入的新密码和确认密码是否一致。如下所示: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;如果用户没有完整输入,系统暂停,返回重新输入。如果用户完整输入,系统继续往下运行,系统将继续验证用户输入的 旧密码是否正确,密码正确,系统继续运行,密码错误系统暂停,返回重新输入,如下代码所示: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;系统通过创建 SQL语句,调用 SqlHelper 类的ExecQuerySql 方法,向数据库中匹配修改数据,返回执行影响的记录数目,如果等于 0,表示修改失败,没有影响数据库记录数,如果大于0,表示修改成功。系统设置界面如图3-3所示。图3-3 系统设置界面3.4 管理员用户管理 图 3-4 管理员用户管理此功能模块只有系统“总管理员”权限才能进入,“普通”管理员权限不能进入。在此模块“总
22、管理员”可以添加、修改、删除、查询所有系统管理员的信息,双击记录列表,进入记录修改页面。如下代码:/绑定数据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 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 管理员权限 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 管理员详细信息在此窗口,可以实现管理员信息添加、信息修改、信息删除以与详细信息查看。添加代码如下:首先判断添加的用户名是否存在,用户名存在,不能继续添加,if (SqlHelper.ExecQuerySql("select id from AdminInfo where ADName=N'" + ADName.Text.Trim() + "'").Rows.Count > 0)MessageBox.Show("输入用户名已存在,不
26、能重复添加.");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;修改代码如下:首先判断修改的用户名是否存在,用户名存在,不能继续添加,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流动车位收费设置 图 3-6 流动车辆收费标准管理此功能模块只有系统“总管理员”权限才能进入,“普通”管理员权限不能进入。在此模块“总管理员”可以设置系统中流动车位的费用,供系统收费使用。 首先判断是否完整输入,只有完整输入才能进行下一步,否则系统返回,提示输入,代码如下:if (Price.Text.Trim() = "")MessageBox.Show("请输入收费价格.");Price.Focus()
31、;return;其次判断本次输入是修改还是添加数据,即数据库中是否已经存在价格信息。添加:通过 Insert into 语句直接向数据库中添加一条价格记录信息,修改:则是在现有数据记录基础上,直接通过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("收费价格修改成功.");this.Hide();elseMessageBox.Show("收费价格修改失败.");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、;收费价格添加成功.");this.Hide();elseMessageBox.Show("收费价格添加失败.");Price.Focus();return;3.6 停车场区域管理 图3-7停车区域管理小区的停车车场可以划分为多个区域,合适安排使用,有的区域专门停放固定车位,有的区域专门停放流动车辆,每个区域停放固定数量的车辆,这样即方便管理员的操作,也确保信息统计准确。代码如下:/绑定数据private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as
34、iid,ID,PName as 区域名称,PNum as 车位个数,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 区域名称,PNum as 车位个数,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)/双击数据时,取得数据id ,并显示修改页面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();PlaceInfoAdd cadd = new PlaceInfoAdd(id);this.Close();cadd.Show();3.7固定停车位管理 图 3-8 固定停车位管理小区的固定车位是指一些业主可以通过购买的方式长期使用自己的车位,固定车位明码标价,业主可以根据自己情况选择,无需害怕回来的晚或者小区停放车辆过多而导致没有地方停车。代码如下:public CarParkMgr(string uid)Initial
38、izeComponent();BindList(); /加载页面/绑定数据private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,b.PName as 停车区域,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 停车区域,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)/双击数据时,取得数据id ,并显示修改页面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();CarParkAdd cadd = new CarParkAdd(id);this.Close();cadd.Show();3.8固定车辆信息管理 图 3-9 固定车辆信息管理固定车辆是指小区业主将自己的车辆登记,系统中保存业主与其车辆信息,方便统计管理。业主
43、可以选择使用流动车位,或者购买自己的固定车位,2种方式为业主提供方便。代码如下:public CarInfoMgr(string uid)InitializeComponent();BindList(); /加载页面/绑定数据private void BindList()DataTable dt = SqlHelper.ExecQuerySql("select '' as iid,a.ID,a.CarNO as 车辆编号,a.UName as 车主,a.UTel as 联系方式,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 联
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)/双击数据时,取得数据id ,并显示修改页面string id = gv_1.Rowse.RowIndex.Cells1.Value.ToString();CarInfoAdd cadd = new CarInfoAdd(id);this.Close();cadd.Show(); 图 3-10固定车辆信息管理员在此窗口可
49、以添加、修改、删除业主登记车辆信息。添加代码:判断是修改还是添加,当管理员添加固定车辆信息时,系统首先验证信息是否完整输入,完整输入进入下一步,验证输入的车牌是否已存在信息,存在通过弹出窗口提示用户信息已存在,不能重复输入,不存在将信息保存数据库。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("输入区域名已存在,不能重复添加.");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车辆进、出登记图 3-11 车辆外出登记在系统主页面中 输入车牌,选择 “外出登记”或者“进入登记”按钮,系统将自动进入车辆登记界面,如图 5-11 即为车辆外出登记,系统根据输入的 车牌自动列表车辆在系统中的信息,以与车辆停放时录入的信息,以与进入小区时间,如果车辆是使用的流动车位,点击“计算费用”按钮,系统将自动计算车辆的停车费用
56、。如果是固定车位车辆,则只登记信息,无需收取费用。代码如下: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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商聚区办公楼转让居间
- 二零二五年度北京市通信中心绿色环保装修服务合同
- 光伏发电规划报告
- 公务用车辆管理系统
- 低空经济发展行动计划
- 营养学饮食指南阅读题
- 房车项目可行性研究报告
- 智能家居网络系统
- 中光能光伏发电
- 建筑设计咨询服务合同
- 2025年西安铁路职业技术学院单招职业技能测试题库学生专用
- pisa数学素养测试题及答案
- 2025年安徽电气工程职业技术学院单招职业技能考试题库汇编
- 2025年锡林郭勒职业学院单招职业技能测试题库汇编
- 2025年合肥财经职业学院单招职业适应性测试题库必考题
- 矿山化验室安全培训
- 清华大学告诉你普通人如何抓住DeepSeek红利
- 《法律职业伦理》课件-第四讲 律师职业伦理
- (2025)辅警招聘公安基础知识必刷题库及参考答案
- 2025年临床医师定期考核必考复习题库及答案(900题)
- 《游园》课件统编版高中语文必修下册
评论
0/150
提交评论