毕业论文设计车辆租贷系统aspnet-毕业论文设计_第1页
毕业论文设计车辆租贷系统aspnet-毕业论文设计_第2页
毕业论文设计车辆租贷系统aspnet-毕业论文设计_第3页
毕业论文设计车辆租贷系统aspnet-毕业论文设计_第4页
毕业论文设计车辆租贷系统aspnet-毕业论文设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(此文档为word格式,下载后您可任意编辑修改! )汽车租赁系统的设计与实现引言1.1选题背景随着市场经济的发展,我国汽车租赁行业已呈现出高速发展的态势。在很多汽车租赁企业经营规模不断扩大、采用连锁经营的情况下,手工管理无论是在工作效率、人员成本还是提供决策信息方面都已经难以适应现代化经营管理的要求,制约了汽车租赁企业的规模化发展和整体服务水平的提升。计算机与互联网技术应用于汽车租赁行业是一场突破性的革命:一方面可以加强标准化、规范化业务管理,全面提高汽车租赁行业的管理水平和信息化程度;另一方面能够合理利用人力和物力资源,使人尽其才,物尽其用,有效地管理各种业务与关系,缩短销售周期、降低销售成本、增加收入。目前,在汽车租赁系统中单机版的技术比较成熟和普及,即数据和程序存放在同一台计算机上,这种系统可基本满足中小型用户的需要;但随着.NET技术、网络技术和数据库技术的发展,通过网络(有线或无线)把各个分店的数据分布协同工作的汽车租赁系统逐渐成为了研究的热点,得到了越来越广泛的应用。本系统正是要研究目前汽车租赁管理系统开发中用到的先进技术,并在此技术上开发建立一个完整的系统,实现对汽车租赁系统全面高效的管理。1.2 目的和意义开发一套运行稳定、安全可靠、操作简便、高效快捷的车辆租贷系统,帮助企业处理日常工作业务,规范管理各项工作和操作流程。能够方便的实现企业的公司宣传与业务介绍。也使管理员通过此系统能对合同的添加、删除、修改、查询等功能。快速准确的获取必要的信息。1.3 技术要求和设计范围如何设计好本系统,实现各个功能的完整正常运行是很重要的。后台利用Microsoft.NETFramework开发平台,在VisualStudio.NET环境下,利用C#语言和SQLServer2005数据库。实现一个基于三层架构(WEB、DAL、BLL)的车辆租贷系统。前台采用flash、DIV和CSS等技术,更加丰富公司的业务介绍和宣传,完善工作人员对业务的方便使用。1.4 发展现状汽车租赁作为汽车消费的一种形式,具有成本低、方式灵活、服务便捷等特点,未来必会有很大发展空间,相关机构预测到 2015年市场规模将超过 350亿元。近些年,中国汽车租赁行业快速发展,出现了一批具有影响力的企业,如神州租车、一嗨租车等,2010年汽车租赁数量为 20万辆,市场规模160亿。但与成熟的发达市场相比,中国的租车普及率较低,2010年为0.4%,低于美国的1.3%和日本的2.2%。我们不能简单的以国际发达市场的发展状况来推断中国市场,毕竟环境不同、客户不同、发展阶段不同,中国汽车租赁行业有其自身特征,必将发展路径也有所不同。随着互联网的快速的发展,社会化营销、第三方销售平台等手段,扩展客户入口。都是需要企业去思考未来的。所以运用互联网必将是以后此类公司争夺的重点。方案论证2.1 三层架构 三层架构的介绍三层架构(3-tierarchitecture)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。如图 1所示:图1 分层式结构2.2 三层结构原理3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有BS应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过通讯与中间层建立连接,再经由中间层与数据库进行交互。

COMDCOM 各层的作用数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是 XML文档。简单的说法就是实现对数据表的 Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的 mapping,以及对象实体的持久化。业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域( Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《PatternsofEnterpriseApplicationArchitecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱EricEvans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。 具体的区分方法数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。2.3 运行环境和开发工具的选择我主要采用ASP技术实现动态页面设计, SQLServer2005实现数据库应用和数据管理的设计方案。前台结合 DIV和CSS的方案进行整个系统的设计。ASP是ActiveServerPage的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是。asp,现在常用于各种动态网站中。ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。与HTML相比,ASP网页具有以下特点:(1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;(3)服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;(4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;(5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等。(6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止 ASP程序代码被窃取。(7)方便连接ACCESS与SQL数据库。(8)开发需要有丰富的经验,否则会留出漏洞,让骇客( cracker)利用进行注入攻击。DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,div+css是一种网页的布局方法,这一种网页布局方法有别于传统的 HTML 网页设计语言中的表格(table)定位方式,可实现网页页面内容与表现相分离。 XHTML 是TheExtensibleHyperTextMarkupLanguage(可扩展超文本标识语言)的缩写。 XHTML 基于可扩展标记语言(XML),是一种在HTML基础上优化和改进的的新语言,目的是基于XML应用与强大的数据转换能力,适应未来网络应用更多的需求。在XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。 运行环境VS2008为系统运行平台,IE8.0浏览器,火狐浏览器,360浏览器,SQLServer2005ExpressEdition。MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,代号“Orcas”,是对VisualStudio2005一次及时、全面的升级。VS2008引入了250多个新特性,整合了对象、关系型数据、 XML的访问方式,语言更加简洁。使用VisualStudio2008可以高效开发Windows应用程序。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时 VisualStudio2008支持项目模板、调试器和部署程序。 VisualStudio2008可以高效开发 Web应用,集成了AJAX1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。 SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如 Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。SQLServer2005ExpressEdition(仅适用于32位)——学习版SQLServerExpress数据库平台基于SQLServer2005。它也可以替换MicrosoftDesktopEngine(MSDE)。通过与MicrosoftVisualStudio2005集成,SQLServerExpress简化了功能丰富、存储安全且部署快速的数据驱动应用程序的开发过程。 开发工具Dreamweavercs5,Flash,photoshopcs5。AdobeDreamweaverCS5是一款集网页制作和管理网站于一身的所见即所得网页编辑器,DreamweaverCS5是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。Flash是由macromedia公司推出的交互式矢量图和 Web动画的标准,由Adobe公司收购。网页设计者使用 Flash创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash,是一种动画创作与应用程序开发于一身的创作软件,到2013年1月24日为止最新的零售版本为 AdobeFlashProfessionalCS6(2012年发布)。AdobeFlashProfessionalCS6为创建数字动画、交互式 Web站点、桌面应用程序以及手机应用程序开发提供了功能全面的创作和编辑环境。 Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。可以在 Flash中创建原始内容或者从其它Adobe应用程序(如Photoshop或illustrator)导入它们,快速设计简单的动画,以及使用AdobeAcitonScript3.0开发高级的交互式项目。设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。 Flash可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。通常,使用Flash[3]创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的 Flash应用程序。AdobePhotoshopCS5Extended是电影、视频和多媒体领域的专业人士 ,使用3D和动画的图形和Web设计人员,以及工程和科学领域的专业人士的理想选择。呈现3D图像并将它合并到2D复合图像中。轻松编辑视频图层上的动画图形,让时间停下来。以及使用测量、计数和可视化工具,探查您的图像。使用Photoshop不仅可以将图像进行精确的加工,还可以将图像制作成网页动画上传到网页中 。 sql注入原理SQL注入攻击指的是通过构建特殊的输入作为参数传入 Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行 SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此, SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。 防止sql注入主要有六种防止 sql注入的方法。1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。4.不要把机密信息直接存放,加密或者 hash掉密码和敏感的信息。5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装6.sql注入的检测方法一般采取辅助软件或网站平台来检测, 软件一般采用 sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。 MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。过程论述3.1 需求分析 系统综合要求管理人员能够通过管理员入口输入账号、密码(本系统默认的账号密码都是Admin)选择进入合同管理或者是汽车信息管理。 游客通过公司的主页实现对公司业务的了解,对公司信息的了解,获得自己需求的车辆信息,获得公司的联系方式,以及需要租贷车辆的有关信息,进行会员注册。游客进行注册,注册后成为公司的会员,可以享受查看汽车信息,在线查询,在线提交租贷合同。管理人员通过前台进入合同管理,实现合同的管理。通过游客提交的租贷合同增加合同信息:通过新增的业务信息添加新的合同。删除合同信息:通过指定的合同(合同的 id),删除该合同。修改合同信息:通过需要修改的合同,修改有关合同的信息(合同的填写时间、有关汽车的信息、租贷人姓名)。显示所有的合同信息:能够在页面显示所有合同的信息。管理员通过前台进入汽车信息管理。增加汽车信息:增加有关汽车的信息(汽车的名称、汽车的车牌号码) 。删除汽车信息:通过汽车的 id,删除指定的汽车。修改汽车信息:通过指定的汽车 id,修改汽车的名称和汽车的车牌号码。显示所有的信息:在页面上显示所有的汽车信息。 系统功能模块设计本系统主要有以下几大功能:游客信息功能、会员业务功能、管理人员功能。如图2所示:图2 系统功能模块图3.2 汽车租贷系统的总体设计 系统操作介绍首先浏览网页,普通游客可以浏览公司的信息,如果是管理员,输入管理员账号密码(账号密码本系统设计初都是 Admin)可以进入后台进行后台的管理操作。 系统功能图系统的基本系统功能图如图 3所示:图3 系统功能图 数据库设计在设计数据库时,综合实际情况,主要设计了 5个表:会员信息表、会员提交合同表、汽车信息表、车辆租贷合同表和管理员信息表。表1是会员信息标的设计。表1会员信息表列名类型大小键允许空描述IdInt4—对记录标识递增量1UsernameVarchar20否会员名PasswordVarchar20否会员密码QqVarchar20否Qq号码PhonenumberVarchar20否电话号码AddressVarchar40否地址表2是会员提交合同表的设计列名Id

类型大小Int4

2

提交合同表键允许空—

描述对记录标识递增量

1NameVarchar20否租贷人姓名TianshuVarchar20否需要租贷的天数CarinforVarchar20否汽车的车牌和名称PhonenumberVarchar20否电话号码DaytimeVarchar20否租贷开始的日期表3是汽车信息表的设计。表3汽车信息表列名类型大小键允许空描述IdInt4—对记录标识递增量1CarnameVarchar20否汽车的名字CarnumberVarchar20否汽车的车牌号表4是车辆租贷合同表的设计。表4车辆租贷合同表列名类型大小键允许空描述IdInt4—对记录标识递增量1createTimeVarchar20否增加合同的时间carnameVarchar20否汽车名称和车牌号peoplenameVarchar20否租贷人的姓名表5是管理人员表的设计表5管理员信息表列名类型大小键允许空描述IdInt4—对记录标识递增量1NameVarchar20否管理员姓名PasswordVarchar20否登陆密码汽车租贷系统详细设计4.1数据库设计的实现首先建立好数据库 Carsystem,再建立表。实现过程在SQL2005执行下列代码。建立数据库createdatabaseCarsystem建立汽车信息表--createtableCarInfo--(idintidentity(1,1)primarykey,carnamevarchar(20)notnull,carnumbervarchar(20)--)建立车辆租赁表createtableZfInfo(idintidentity(1,1)primarykey,createTimevarchar(20)notnull,carnamevarchar(20)notnull,peoplenamevarchar(20)notnull)建立会员信息表--createtableCarInfo--(idintidentity(1,1)primarykey,Usernamevarchar(20)notnull,-- Passwordvarchar(20)notnull,Qq varchar(20) notnull,Phonenumber varchar(20)notnull,Address varchar(20)notnull--)建立提交合同表createtableCarInfo(idintidentity(1,1)primarykey,Namevarchar(20)notnull,Tianshuvarchar(20)notnull,Qq varchar(20) notnull,Carinfor varchar(20)notnull,Phonenumber varchar(20)notnull,Daytime archar(20)notnull)建立管理人员信息表--createtableCarInfo(idintidentity(1,1)primarykey,Namevarchar(20)notnull,Password varchar(20)notnull) 数据表操作类的各种方法设计在完成前面的需求分析和数据库的建立后,现在要完成的是数据表操作类的设,在实际的项目中数据表的操作类肯定是对数据表的增删查改,数据表的增删查改我们一般来说是封装在一个类或多个类, 我建立的数据库有 5个数据表,相对应的是5个数据表的操作类。主要对车辆信息操作类和合同信息的操作类。对汽车信息标的操作类:增加汽车信息、删除汽车信息、修改汽车信息、显示全部汽车信息。对汽车租贷合同表的操作类:增加车辆租贷合同、删除车辆租贷合同、修改车辆租贷合同、显示全部车辆租贷合同。 整个系统构架的实现在这个项目中我们采用的是三层架构,即 WEB(界面显示层)、BLL(业务逻辑层)、DAL(数据访问层)。WEB是调用BLL,BLL又是调用DAL。对数据库的访问操作全部是放在 DAL中的。显而易见数据表操作类肯定是放在 DAL中的。根据这些知识,现在用 VS2008先建立一个网站取名为 WEB,然后在该网站上分辨添加DAL、BLL和Model三个类库。DAL(数据访问层)的实现:主要包括上那个类:数据库助手类,车辆信息操作类和合同信息操作类。数据库助手类,也就是提供各种各样对数据库的访问,包括对数据库的增删查改。车辆信息操作类,增加汽车信息、删除汽车信息、修改汽车信息、显示全部汽车信息。合同信息操作类,增加车辆租贷合同、删除车辆租贷合同、修改车辆租贷合同、显示全部车辆租贷合同。BLL的实现:主要包括汽车信息表业务类 CarManager.cs、合同信息表业务类ZfManager.cs。实现对业务的一个综合处理。WEB的实现:主要包含三个页面:主页Default.aspx、汽车信息管理页 Car.aspx和合同管理页Zf.aspx。应该也要包含母版页,考虑到该系统的页面比较少,就在这里省略了。但是在实际的具体项目中不能少。 DAL的具体实现在DAL类库中,是我们具体实现的对操作表的功能的设计,在这里是我们实现对数据库具体的操作类。首先是数据库的连接。我采用的是DAO.NET建立数据库连接。Windows身份验证方式,因为我在建立数据库的时候是采用Windows身份验证。具体的方法如下面的代码:publicSQLHelper(){string conStr = "Data Source= (local);InitialCatalog=Carsystem;IntegratedSecurity=true";conn=newSqlConnection(conStr);}建立好数据库连接,然后是实现各个操作类,在这里我主要展示汽车信息表操作类和合同信息表操作类的代码如下所示:汽车信息表操作类各种方法的实现。其中所要用到的命名空间:usingSystem;usingSystem.Linq;usingSystem.Text;usingSystem.Data;初始化的方法:publicclassCarInfoDAO{privateSQLHelpersqlhelper=null;publicCarInfoDAO(){sqlhelper=newSQLHelper();}增加汽车信息的方法:publicboolInsert(stringcaName,stringcaNumber){boolflag=false;stringsql="insertintoCarInfo(carname,carnumber)values('"+caName+"','"+caNumber+"')";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}删除汽车信息的方法:publicboolCardelete(stringcaName){boolflag=false;stringsql="deletefromCarInfowherecarnumber='"+caName+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}修改汽车的方法:publicboolCarupdata(stringid,stringcaName,stringcaNumber){boolflag=false;stringsql= "update CarInfo setcarname='" + caName+"',carnumber='"+caNumber+"'whereid='"+id+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}取出所有的汽车信息的方法:publicDataTableSelectAll(){DataTabledt=newDataTable();stringsql="select*fromCarInfo";dt=sqlhelper.ExecuteQuery(sql);returndt;}合同信息表操作类各种方法的实现初始化:privateSQLHelpersqlhelper=null;publicZfInfoDAO(){sqlhelper=newSQLHelper();}增加合同信息的方法:publicboolInsertzf(stringcaTime,stringcaCinfo,stringcaPeople){boolflag=false;stringsql="insertintoZfInfo(createTime,carname,peoplename)values('"+caTime+"','"+caCinfo+"','"+caPeople+"')";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}删除具体合同信息的方法:publicboolDeletezf(stringcaName){boolflag=false;stringsql="deletefromZfInfowherepeoplename='"+caName+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}修改具体合同的方法:publicboolUpdatazf(stringid,stringcaTime,stringcaCinfo,stringcaPeople){boolflag=false;stringsql="updateZfInfosetcreateTime='"+caTime+"',carname='"+caCinfo+"',peoplename='"+caPeople+"'whereid='"+id+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}显示所有的信息合同表的方法:publicDataTableSelectAllzf(){DataTabledt=newDataTable();stringsql="select*fromZfInfo";dt=sqlhelper.ExecuteQuery(sql);returndt;}的具体实现在BLL层中,我们对DAL中的各种方法进行一个再次的查询,下面我主要展示一下汽车信息业务类的方法。所用到的命名空间:usingSystem;usingSystem.Linq;usingSystem.Text;usingDAL;usingSystem.Data;初始化:privateCarInfoDAOcdao=null;publicCarManager(){cdao=newCarInfoDAO();}增加汽车信息的方法:publicboolInsert(stringcaName,stringcaNumber){returncdao.Insert(caName,caNumber);}删除指定汽车的方法:publicboolCardelete(stringcaName){returncdao.Cardelete(caName);}修改汽车的方法:publicboolCarupdata(stringid,stringcaName,stringcaNumber){returncdao.Carupdata(id,caName,caNumber);}取出所有汽车信息的方法:publicDataTableSelectAll(){returncdao.SelectAll();}4.2 汽车租贷系统所有类库及类系统所有到所有的类库及各自的类如图 4所示:图4 类库及类图4.3 主页实现游客访问、管理员登陆和会员注册与访问主页设计基本设计:页面基本上分为 Logo+Banner、可变区域、管理员登录、版权声明四个区域,其中 Logo+Banner主要显示公司的 logo和Banner介绍,主要用Photoshop设计一个形象的图片插入上去并调节适当的大小。可变区域主要是给用户展示本公司的介绍、业务等内容,采用图片文字等内容,使游客能一看便知。登陆区域主要是用于本公司内部员工登陆进行后台管理和游客进行会员注册和会员登录,简单明了便可。最下面的应该是本网站的版权声明。基本页面如图 5所示:图5 页面设计基本图如图所6示是整个系统的主页的整个界面, logo是整个公司的名称,中间的可变区域是主要浏览公司的业务信息、汽车信息等有关真个公司的信息,这部分是管理员在设计中插入的文字、图片等信息。管理员登陆如可实现管理员登陆到后台管理。图6 主页显示图主页的

html代码:

AutoEventWireup="true"<!DOCTYPE{width:1150px;}#dl{width:1150px;}#form1{width:1150px;}.style1{font-family:宋体,Arial,Helvetica,sans-serif;font-size:x-large;}.style2{background-color:#FF6600;}.style3{background-color:#FF3300;}.style4{text-align:left;}<style><:center;"><img src="内容 logo.jpg" style=""style="width: 1150px;text-align:center;"><imgsrc="内容内容页.jpg"style="width:870px; class="style1"><spanclass="style2"> 管 理 员 登 陆                                            会 员 登 录                          <span><br><span><b>请输入管理员姓名:<asp:TextBox ID="TextBox1"runat="server"><asp:TextBox>                                               请 输 入 会 员 账 号 : <asp:TextBox ID="TextBox3"runat="server"><asp:TextBox><br> 密码:<asp:TextBoxID="TextBox2"runat="server"Height="22px"TextMode="Password"><asp:TextBox>                                                            请输入密码:<asp:TextBoxID="TextBox4"runat="server"><asp:TextBox>              <br> <asp:ButtonID="Button1" runat="server"BorderColor="Black"ForeColor="#333300"Height="24px" onclick="Button1_Click" Text="登陆合同管理"Width="115px">          <asp:ButtonID="Button2" runat="server" Text="登陆汽车管理"onclick="Button2_Click">                                                 <asp:ButtonID="Button3"runat="server"Text="登录">    <asp:ButtonID="Button4"runat="server"onclick="Button4_Click"style=":left">                                                                           <br><br><div><divid="footer"style="color:#0000FF;width:1150px;text-align:center;"><spanclass="style3">版权所有   ©聂冬佳  长江大学工程技术学院<span><div><form><body><密码Admin。点击登录合同管理进入合同管理页。如图 14是合同管理页面。图14 合同管理页面其中CreatTime为合同建立的时间,id为系统给合同建立时自动分配的一个 id,carname为汽车的名字和车牌 peoplename为租贷人的姓名。将合同“20130601上海225车牌:鄂5642赵六”增加到数据表。如图 15所示:图15 功能图修改id为37的合同为201300506奥迪c4车牌:鄂6652小明。如图16所示:图16 功能图将合同peoplename为李四的合同删除。如图 17所示:图17 功能图从主页点击登录汽车信息进入汽车信息管理页。如图 18所示:图18 功能图其中carname表示汽车的名称,carnumber表示车牌号码。将“大众cc鄂5674”添加到汽车数据表。如图 19所示图19 功能图将车牌为 鄂9865的汽车信息删除。如图 20所示:图20 功能图修改id为57汽车为:宝马747鄂1111。如图21所示:图21 功能图结束语该系统是一个简单的关于三层架构的解决方案的实现与应用,系统实现的功能不是很多,但是基本上是按照三层架构的设计过程来依次实现一个完整的系统,在这次设计中,我严格按照 WEB,DAL,BLL的要求来完成所有的操作。通过这次设计,我对ASP和SQLSERVER技术的运用更加熟练,也更加丰富自己对面向对象的理解,对软件的编写更加规范,在完成的过程中学习和掌握了以前不知道的知识,更加的丰富了在项目实例当中的操作过程,从头到尾,自己又是后台代码编写也是前台的设计,但前台的设计不是很好很完美,我想这就是自己更进一步的动力。虽然有些东西做的不是很好,但还是基本完成了实现过程中的各个操作过程以及操作方法的了解。希望在以后的学习工作你当中能更加的完善自己在编写项目当中的能力。参考文献 程序设计[M].北京清华大学出版社 ,2005年1月沈士根,汪承焱,许小东著.Web程序设计-ASP.NET实用网站开发.北京:清华大学出版社,2009[3]王小科,王军,赵会东等著.C#项目开发案例全程实录.北京:清华大学出版社,2011[4]微软公司.SQLServer2005数据库开发与实现.高等教育出版社2009年8月[5]微软公司.VisualC#2005程序设计语言.高等教育出版社2008年2月[6]刘晖著.完美网站设计典型实例.北京:电子工业出版社,2008[7] 李红,张兵.ASP.NET程序设计[M]. 北京:北京师范大学出版社, 2010.(美)基斯格.构建高性能可扩展ASP.NET网站[M].余昭辉译.北京人民邮电出版社,2011.[9] 徐洁磐,常本勤 . 数据库技术原理与应用教程学习与实验指导 [M].北京:机械工业出版社,2010.[10]王秀英.SQLServer2005实用教程[M].北京:清华大学出版社,2010.[11]程云志等.数据库原理与SQLServer2005应用教程[M].北京:机械工业出版社,2009.赵晓东,张正礼,许小荣从入门到精通[M].北京:清华大学出版社,2009.[13]张浦生数据库运用技术机械工业出版社2010.年1月[14]韩颖、卫琳、陈伟ASP.NET3.5动态网络开发基础教程清华大学出版社2010年4月于国防、李建C#语言Windows程序设计清华大学出版社2010年9月[16] 牛腩 牛腩新闻发布(项目实例视频) conn=null;privateSqlCommandcmd=null;privateSqlDataReadersdr=null;publicSQLHelper(){string conStr = "Data Source= (local);InitialCatalog=Carsystem;IntegratedSecurity=true";conn=newSqlConnection(conStr);}<summary>该方法执行传入的增删改 SQL的语句<summary><paramname="sql"> 要执行的SQL语句<param><returns> 返回更新的记录数<returns>publicintExecuteNonQuery(stringsql){conn.Open();cmd=newSqlCommand(sql,conn);intres=cmd.ExecuteNonQuery();conn.Close();returnres;}<summary>该方法执行传入的 SQL查询语句<summary><paramname="sql">SQL 查询语句<param><returns><returns>publicDataTableExecuteQuery(stringsql){DataTabledt=newDataTable();conn.Open();cmd=newSqlCommand(sql,conn);sdr=cmd.ExecuteReader();dt.Load(sdr);sdr.Close();conn.Close();returndt;}}}CarInfoDAO.cs 代码** 创建人:聂冬佳 班级:计算机60902 学校:长江大学工程技术学院* 创建时间:2012-5-22说明:汽车信息表操作类*usingSystem;usingSystem.Linq;usingSystem.Text;usingSystem.Data;namespaceDAL{<summary>汽车信息表操作类<summary>publicclassCarInfoDAO{privateSQLHelpersqlhelper=null;publicCarInfoDAO(){sqlhelper=newSQLHelper();}<summary>增加汽车信息<summary><paramname="caName">

车辆名字<param><paramname="caNumber">

车辆车牌<param><returns><returns>publicboolInsert(stringcaName,stringcaNumber){boolflag=false;stringsql="insertintoCarInfo(carname,carnumber)values('"+caName+"','"+caNumber+"')";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}<summary>删除指定汽车<summary><paramname="caName"> 汽车车牌<param><returns><returns>publicboolCardelete(stringcaName){boolflag=false;stringsql="deletefromCarInfowherecarnumber='"+caName+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}<summary>修改汽车信息<summary><paramname="id"> 需要修改的汽车 id<param><paramname="caName">

修改后的名称

<param><paramname="caNumber">

修改后的车牌号

<param><returns><returns>publicboolCarupdata(stringid,stringcaName,stringcaNumber){boolflag=false;string sql ="update CarInfo set carname='" +caName+"',carnumber='"+caNumber+"'whereid='"+id+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}<summary>取出当前所有的汽车<summary><returns><returns>publicDataTableSelectAll(){DataTabledt=newDataTable();stringsql="select*fromCarInfo";dt=sqlhelper.ExecuteQuery(sql);returndt;}}}ZfInfoDAO.cs 代码** 创建人:聂冬佳 班级:计算机60902 学校:长江大学工程技术学院创建时间:2012-5-21说明:车辆租赁表操作类*usingSystem;usingSystem.Linq;usingSystem.Text;usingSystem.Data;namespaceDAL{publicclassZfInfoDAO{privateSQLHelpersqlhelper=null;publicZfInfoDAO(){sqlhelper=newSQLHelper();}<summary>增加租赁合同表<summary><paramname="caTime">

填写日期<param><paramname="caCinfo"><paramname="caPeople">

汽车名字和车牌<param>租赁人名字<param><returns><returns>public

boolInsertzf(string

caTime,string

caCinfo,

string

caPeople){boolflag=false;stringsql="insertintoZfInfo(createTime,carname,peoplename)values('"+caTime+"','"+caCinfo+"','"+caPeople+"')";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}<summary>删除修改租赁合同表<summary><paramname="caName">租赁人姓名<param><returns><returns>publicboolDeletezf(stringcaName){boolflag=false;stringsql="deletefromZfInfowherepeoplename='"+caName+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}<summary>修改租赁合同表<summary><paramname="id"> 需要修复该合同的 id<param><paramname="caTime">

新日期<param><paramname="caCinfo">

新汽车信息

<param><paramname="caPeople">

新租赁人姓名

<param><returns><returns>public

bool

Updatazf(string

id,

string

caTime,

string

caCinfo,stringcaPeople){boolflag=false;stringsql="updateZfInfosetcreateTime='"+caTime+"',carname='"+caCinfo+"',peoplename='"+caPeople+"'whereid='"+id+"'";intres=sqlhelper.ExecuteNonQuery(sql);if(res>0){flag=true;}returnflag;}<summary>显示所有合同<summary><returns><returns>publicDataTableSelectAllzf(){DataTabledt=newDataTable();stringsql="select*fromZfInfo";dt=sqlhelper.ExecuteQuery(sql);returndt;}}}CarManager.cs代码** 创建人:聂冬佳 班级:计算机60902 学校:长江大学工程技术学院创建时间:2012-5-23说明:汽车信息表的业务类*usingSystem;usingSystem.Linq;usingSystem.Text;usingDAL;usingSystem.Data;namespaceBLL{public class CarManager{privatepublic

CarInfoDAOcdao=CarManager()

null;{cdao= newCarInfoDAO();}#region 增加汽车信息<summary>增加汽车信息<summary><paramname="caName">车辆名字<param><paramname="caNumber">车辆车牌<param><returns><returns>public boolInsert( string caName,string caNumber){return cdao.Insert(caName,caNumber);}#endregion#region 删除指定汽车<summary>删除指定汽车<summary><paramname="caName">汽车车牌<param><returns><returns>public boolCardelete( string caName){return cdao.Cardelete(caName);}#endregion#region 修改汽车信息<summary>修改汽车信息<summary><paramname="id">需要修改的汽车id<param><paramname="caName">修改后的名称<param><paramname="caNumber">修改后的车牌号<param><returns><returns>public boolCarupdata(string id, string caName,string caNumber){return cdao.Carupdata(id,caName,caNumber);}#endregion#region 取出当前所有的汽车<summary>取出当前所有的汽车<summary><returns><returns>public DataTableSelectAll(){return cdao.SelectAll();}#endregion}}ZfManager.cs代码** 创建人:聂冬佳 班级:计算机60902 学校:长江大学工程技术学院创建时间:2012-5-23说明:汽车信息表的业务类*usingSystem;usingSystem.Linq;usingSystem.Text;usingDAL;usingSystem.Data;namespaceBLL{public class CarManager{privatepublic

CarInfoDAOcdao=CarManager()

null;{cdao= newCarInfoDAO();}#region 增加汽车信息<summary>增加汽车信息<summary><paramname="caName">车辆名字<param><paramname="caNumber">车辆车牌<param><returns><returns>public boolInsert( string caName,string caNumber){return cdao.Insert(caName,caNumber);}#endregion#region 删除指定汽车<summary>删除指定汽车<summary><paramname="caName">汽车车牌<param><returns><returns>public boolCardelete( string caName){return cdao.Cardelete(caName);}#endregion#region 修改汽车信息<summary>修改汽车信息<summary><paramname="id">需要修改的汽车id<param><paramname="caName">修改后的名称<param><paramname="caNumber">修改后的车牌号<param><returns><returns>public boolCarupdata(string id, string caName,string caNumber){return cdao.Carupdata(id,caName,caNumber);}#endregion#reg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论