毕业论文-绿化管理系统-基于web服务_第1页
毕业论文-绿化管理系统-基于web服务_第2页
毕业论文-绿化管理系统-基于web服务_第3页
毕业论文-绿化管理系统-基于web服务_第4页
毕业论文-绿化管理系统-基于web服务_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGEI北京理工大学珠海学院绿化管理系统——基于web服务摘要如今,科学技术已是第一生产力。计算机发展到现在已经是比较成熟的一门技术学科。管理系统在计算机中的应用已非常普遍。不管是单位内部使用还是以产品形式开发,管理系统的需求都非常大。人们对管理的要求越来越多,越来越繁琐,传统的管理系统面临着很大的挑战。在信息不断膨胀的今天,能更好地适应需求,想法越新,越有创意,无疑可以在竞争中取得优势。对于传统的管理系统比较常见的有,资产管理系统,图书馆管理系统,学生信息管理系统等。这些传统管理系统如今在市场上已经见怪不怪了,要想能够吸引人们的眼光,无疑需要想出一些独树一帜的新颖的想法,但又不能脱离人们的需求。本课题中设计了绿化管理系统,专门对本校北京理工大学珠海学院的绿化带及树木进行管理,实现管理系统具备的基本功能增删改查,本系统还为推广本校进行了网络化设计。绿化管理系统的提出,可谓别具匠心,在传统的管理系统上另辟蹊径。本系统管理学校的所有绿化带的信息,实现对绿化带信息的增加,删除,改动,查询以及数据库的备份和还原等功能,极大的方便了负责学校绿化管理的老师对树木进行管理。关键词:管理系统绿化webZhuhai,BeijingInstituteofTechnologyCollegeofgreenmanagementsystem-web-basedservicesABSTRACTToday,scienceandtechnologyareprimaryproductiveforce.Acomputerisnowdevelopedintoarelativelymaturetechnologysubjects.Managementsysteminthecomputerapplicationsareverycommon.Whetherinterioroftheirflatsorinproductformtheuseofthedevelopment,managementsystemrequirementsareverylarge.Peoplemanagementrequirements,andmoreandcumbersome,thetraditionalmanagementsystemisfacinggreatchallenges.Intoday'sever-expandinginformationandcanbettermeettheneeds,themorenewideas,themorecreative,nodoubtthecompetitionadvantage.Forthetraditionalmanagementsystemsaremorecommon,assetmanagementsystem,librarymanagementsystem,studentinformationmanagementsystems.Today,thesetraditionalmanagementsystemsinthemarkethasbeenflattering,tobeabletoattractpeople'seyes,nodoubtneedtocomeupwithsomeuniqueinnovativeideas,butcannotbedivorcedfrompeople'sdemand.Inthispaper,greenmanagementsystemwasdesignedspecificallyfortheUniversityZhuhai,BeijingInstituteofTechnologyGreenmanagementsystemproposed,canbedescribedasuniqueingenuity,inthetraditionalmanagementsystem,openanewpath.Thesystemmanagementofallschools,greenbeltoftheinformation,toinformationonthegreenbelttoadd,delete,change,queryanddatabasebackupandrestorefunctions,greatlyfacilitatethemanagementinchargeoftheschool'steacherofthegreentreesmanagement.Keywords:greenwebmanagementsystem目录摘要 IIABSTRACT III1绪论 11.1软件管理系统发展的历程 11.2本课题的研究背景 21.3本课题的研究意义 21.4本课题主要研究的内容 21.5本章小结 22系统开发环境 32.1硬件开发环境 32.1.1服务器 32.1.2客户端 62.2软件开发环境 82.2.1windowsserver2003服务器操作系统 82.2.2windowsxp客户端操作系统 92.2.3windows下开发软件visualstudio2008 102.2.4数据库开发软件SQLServer2005Express 112.3本章小结 123系统设计与分析 133.1系统用例图 133.2补充规约 143.3系统总体设计图 153.4本章小结 154系统开发 164.1web服务的开发 164.1.1系统管理员 164.1.2查询 194.1.3数据更新 204.1.4数据库备份 264.2简单测试应用程序的开发 294.3本章小结 325系统测试 325.1本地iis的配置 325.2配置客户端pc的软件运行环境 345.3测试 365.4本章小结 426总结与展望 436.1本课题完成的主要工作 436.2存在问题与进一步需要研究的内容 43参考文献 44谢辞 451绪论1.1软件管理系统发展的历程信息管理系统(MIS)涉及经济学、管理学、运筹学、统计学、计算机科学等很多学科,是各学科紧密相连综合交叉的一种系统。作为管理系统,它的理论和方法正在不断发展与完善。信息管理系统除了具备增、删、改、查的基本功能外,还需具备预测、计划、控制和辅助决策特有功能。具体是:(1)数据处理功能。包括数据收集和输入、数据传输、数据存储、数据加工和输出。(2)预测功能。运用现代数学方法、统计方法和模拟方法,根据过去的数据预测外来的情况。(3)计划功能。根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层,提供不同的管理层,提供相应的计划报告。(4)控制功能。根据各职能部门提供的数据,对计划的执行情况进行检测、检测、比较执行与计划的差异,对差异情况分析其原因。(5)辅助决策功能。采用各种数学模型和所存储的大量数据,及时推倒出有关问题的最优解或满意解,辅助各级管理人员进行决策,以期合理利用人财物和信息资源,取得较大的经济效益。从某种意义上讲。信息管理系统是组织理论、会计学、统计学、数学模型及经济学的混合物,它全面使用计算机技术、网络通信技术、数据库技术等,是多学科交叉的边缘技术,因此是技术系统。从社会技术系统的观点来看,MIS和组织结构之间是相互影响的,引进MIS将导致新组织结构的产生,而现存的组织结构又对MIS的分析、设计、引进的成功与否产生重要影响,其影响要素包括组织环境、组织战略、组织目标、组织结构、组织过程和组织文化。所以信息管理系统发展到今天,既是技术系统,同时也是社会系统。1.2本课题的研究背景管理系统在计算机中的应用已非常普遍。不管是单位内部使用还是以产品形式开发,管理系统的需求都非常大。人们对管理的要求越来越多,越来越繁琐,传统的管理系统面临着很大的挑战。在信息不断膨胀的今天,能更好地适应需求,想法越新,越有创意,无疑可以在竞争中取得优势。对于传统的管理系统比较常见的有,资产管理系统,图书馆管理系统,学生信息管理系统等。这些传统管理系统如今在市场上已经见怪不怪了,要想能够吸引人们的眼光,无疑需要想出一些独树一帜的新颖的想法,但又不能脱离人们的需求。1.3本课题的研究意义本课题设计了绿化管理系统,专门对本校北京理工大学珠海学院的绿化带及树木进行管理,实现管理系统具备的基本功能增删改查。对于绿化管理在计算机中的应用是很少见的,本绿化管理系统的提出,可谓别具匠心,在传统的管理系统上另辟蹊径。本系统管理学校的所有绿化带的信息,实现对绿化带信息的增加,删除,改动,查询以及数据库的备份和还原等功能,极大的方便了负责学校绿化管理的老师对树木进行管理。1.4本课题主要研究的内容本课题的主要内容是在服务器pc和客户端pc上开发系统相应的软件及相关的服务。在课题中所做的工作主要为几个方面:后台数据库的开发Web服务开发简单测试应用程序的开发Asp展示网页的开发1.5本章小结本章主要叙述了信息管理系统的发展历程,以及本课题的研究背景和本课题研究的意义,列出了本课题需要做的主要工作。2系统开发环境2.1硬件开发环境本系统主要的硬件开发环境是服务器pc和客户端pc。服务器pc主要搭建起服务器环境及存放供客户端pc访问的web服务和asp网页,客户端pc主要存放访问服务器的应用软件及需要有IE浏览器的支持。由此看出,服务器pc的软件负担比较重,故配置上要求需要高一些,服务器pc的开发配置如下:CPU:3.06G内存:1G以上(2G最佳)硬盘:80G以上显卡:128M显存以上客户端pc只需要有.net平台及IE浏览器支持,故软件负担不会太重,客户端配置如下:CPU:1.80G主频以上内存:256M以上硬盘:80G以上显卡:128M显存以上2.1.1服务器服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(如果一个PC对外提供ftp服务,也可以叫服务器)。从狭义上来讲,服务器是专指某些高性能计算机,能够通过网络,对外提供服务。相对于普通PC来说,服务器在稳定性、安全性、性能等方面都要求更高,因此CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。图2-1主流服务器服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。它是网络上一种为客户端计算机提供各种服务的高可用性计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。图2-2服务器内部组织结构服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高。图2-3服务器内部硬件结构由于服务器在网络中提供服务,那么这个服务的质量对承担多种应用的网络计算环境是非常重要的,承担这个服务的计算机硬件必须有能力保障服务质量。这个服务首先要有一定的容量,能响应单位时间内合理数量的服务器请求,同时这个服务对单个服务请求的响应时间要尽量快,还有这个服务要在要求的时间范围内一直存在。如果一个WEB服务器只能在1分钟里处理1个主页请求,1个以外的其他请求必须排队等待,而这一个请求必须要3分钟才能处理完,同时这个WEB服务器在1个小时以前可以访问到,但一个小时以后却连接不上了,这种WEB服务器在现在的Internet计算环境里是无法想象的。现在的WEB服务器必须能够同时处理上千个访问,同时每个访问的响应时间要短,而且这个WEB服务器不能停机,否则这个WEB服务器就会造成访问用户的流失。为达到上面的要求,作为服务器硬件必须具备如下的特点:性能,使服务器能够在单位时间内处理相当数量的服务器请求并保证每个服务的响应时间;可靠性,使得服务器能够不停机;可扩展性,使服务器能够随着用户数量的增加不断提升性能。因此我们说不能把一台普通的PC作为服务器来使用,因为,PC远远达不到上面的要求。这样我们在服务器的概念上又加上一点就是服务器必须具有承担服务并保障服务质量的能力。这也是区别低价服务器和PC的差异的主要方面。在信息系统中,服务器主要应用于数据库和Web服务,而PC主要应用于桌面计算和网络终端,设计根本出发点的差异决定了服务器应该具备比PC更可靠的持续运行能力、更强大的存储能力和网络通信能力、更快捷的故障恢复功能和更广阔的扩展空间,同时,对数据相当敏感的应用还要求服务器提供数据备份功能。而PC机在设计上则更加重视人机接口的易用性、图像和3D处理能力及其他多媒体性能。2.1.2客户端了解Client及Server间的关系。在计算机的世界里,凡是提供服务的一方我们称为服务器(Server),而接受服务的另一方我们称作客户端(Client)。我们最常接触到例子是局域网络里的打印服务器所提供的打印服务:提供打印服务的计算机,我们可以说它是打印服务器;而使用打印服务器提供打印服务的另一方,我们则称作客户端。但是谁是客户端谁是服务器也不是绝对的,例如倘若原提供服务之服务器要使用其它机器所提供之服务,则所扮演之角色即转变为客户端。而这种关系在因特网上,就变成使用者和网站的关系了。使用者透过调制解调器等设备上网,在浏览器中输入网址,透过HTTP通讯协议向网站提出浏览网页的要求(Request)。网站收到使用者的要求后,将使用者要浏览的网页数据传输给使用者,这个动作称为响应(Response)。网站提供网页数据的服务,使用者接受网站所提供的数据服务;所以使用者在这里就是客户端,响应使用者要求的网站即称为服务器。图2-4客户端与服务器的关系不过客户端及伺服端的关系不见得一定建立在两台分开的机器上,同一台机器中也有这种主从关系的存在。提供服务的伺服端及接受服务的客户端也有可能都在同一台机器上,例如我们在提供网页的服务器上执行浏览器浏览本机所提供的网页,这样在同一台机器上就同时扮演伺服端及客户端。图2-5用户客户端通过因特网请求服务2.2软件开发环境本设计用到的软件开发环境主要有windowsserver2003服务器操作系统,windowsxp客户端操作系统,visualstudio2008应用开发软件及SQLServer2005数据库开发软件。其中系统大部分的代码和程序调试是在visualstudio2008及SQLServer2005完成的,因此visualstudio2008和SQLServer2005的使用将是本设计的重点。下面将对这几个软件开发环境依次进行讲解。2.2.1windowsserver2003服务器操作系统WindowsServer2003是微软的服务器操作系统。该产品最初叫作“Windows.NETServer”,后改成“Windows.NETServer2003”,最终被改成“WindowsServer2003”,于2003年3月28日图2-6windowsserver2003操作系统WindowsServer2003是目前微软推出的使用最广泛的服务器操作系统。相对于Windows2000,此版本做了很多改进,特别是在改进的脚本和命令行工具,对微软来说是一次革新——把一个完整的命令外壳带进下一Windows版本的一部分。相对于windows2000,此版本主要有以下改进的方面:改进的ActiveDirectory(活动目录)(如可以从schema中删除类)。改进的GroupPolicy(组策略)操作和管理。改进的磁盘管理,如可以从ShadowCopy(卷影复制)中备份文件。WindowsServer2003有多种版本,每种都适合不同的商业需求:WindowsServer2003Web版WindowsServer2003标准版WindowsServer2003企业版WindowsServer2003数据中心版本设计中,为了开发和调试方便使用标准版+sp1补丁包进行开发。2.2.2windowsxp客户端操作系统Windowsxp这个操作系统相信许多人都不会陌生。Windowsxp中文全称为视窗操作系统体验版。是微软公司发布的一款视窗操作系统。它发行于2001年10月25日,原来的名称是Whistler。微软最初发行了两个版本,家庭版(Home)和专业版(Professional)。家庭版的消费对象是家庭用户,专业版则在家庭版的基础上添加了新的为面向商业的设计的网络认证、双处理器等特性。且家庭版只支持1个处理器,专业版则支持2个。字母XP表示英文单词的“体验”(experience)。图2-7windowsxp操作系统WindowsXP拥有一个叫做Luna(月神)的豪华亮丽的用户图形界面。WindowsXP的视窗标志也改为较清晰亮丽的四色视窗标志。WindowsXP带有用户图形的登陆界面;全新的XP亮丽桌面,用户若怀旧以前桌面可以换成传统桌面。此外,WindowsXP还引入了一个“选择任务”的用户界面,使得工具条可以访问任务的具体细节。然而,批评家认为这个基于任务的设计指示增加了视觉上的混乱,因为它除了提供比其它操作系统更简单的工具栏以外并没有添加新的特性。而额外进程的耗费又是可见的。由于微软把很多以前是由第三方提供的软件整合到操作系统中,XP受到了猛烈的批评。这些软件包括防火墙、媒体播放器(WindowsMediaPlayer),即时通讯软件(WindowsMessenger),以及它与MicrosoftPassport网络服务的紧密结合,这都被很多计算机专家认为是安全风险以及对个人隐私的潜在威胁。这些特性的增加被认为是微软继续其传统的垄断行为的持续。XP虽然存在许多风险,但是这些对于普通用户而言有时候却无关紧要,而且安全性越高,许多功能反而受限或者需要特殊的设置才能开启,因此如果非专业人员使用,XP反而是最简单,通俗,易懂的操作系统。2.2.3windows下开发软件visualstudio2008MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,代号“Orcas”,是对VisualStudio2005一次及时、全面的升级。VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用VisualStudio2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时VisualStudio2008支持项目模板、调试器和部署程序。VisualStudio2008可以高效开发Web应用,集成了ASP.NETAJAX1.0,包含ASP.NETAJAX项目模板,它还可以高效开发Office应用和Mobile应用。对于一个软件开发人员,一个好的开发环境可以让开发工作事半功倍,微软公布了最新版VisualStudioShell的预览,我们可以发现新版VS的开发界面分为两个版本:整合模式和孤立模式,分别对基于语言的开发和基于特别工具的开发作了优化。并将IronPython引入了VisualStudio,该界面将在VisualStudio2008的Beta2版本中出现。图2-8VisualStudio2008开发工具VisualStudio2008开发工具特性:软件开发更智能评点:VisualStudio2008很好用,特别是自动提示和重构功能。VisualStudio2008中WCF的扩展,用起来很方便评点:VisualStudio2008对WCF的扩展,用起来很方便。VisualStudio2008中的多定向支持评点:VisualStudio2008为应用程序的开发带来了新的活力。VisualStudio2008对subversion的支持评点:虽然VS2008中并未集成Ankhsvn,但仍然不妨碍我们的使用。微软整合了windowslive到VisualStudio2008中评点:VS2008程序员开发Live网络服务平台的有利武器。VisualStudio2008中的SQL数据库发布评点:VS2008为数据库的发布提供了更方便快捷的解决方案。VisualStudio2008加入拼写检查器评点:VisualStudio2008,很好,很强大。2.2.4数据库开发软件SQLServer2005ExpressMicrosoftSQLServer2005是用于大规模联机事务处理(OLTP)、数据仓库和电子商务应用的数据库和数据分析平台。SQLServerExpress是一个免费、易用且便于管理的数据库。SQLServerExpress与MicrosoftVisualStudio2008集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。SQLServerExpress是免费的,可以再分发(受制于协议),还可以起到客户端数据库以及基本服务器数据库的作用。SQLServerExpress是低端ISV、低端服务器用户、创建Web应用程序的专业开发人员以及创建客户端应用程序的编程爱好者的理想选择。对于开发人员,SQLserver2005的有三个重要的特性是必须了解的。这三个重要特性分别是:企业数据管理、开发人员生产力和商务智能。下面将以表格的形式详细的解析这三个特性。企业数据管理开发人员生产力商务智能SQLServer2005带来了一个全新的企业级数据整合平台。此平台具有出色的ETL和整合能力,使得组织机构能更加容易地管理来自于不同的关系型和非关系型数据源的数据。通过SQLServerIntegrationServices(SSIS),组织机构能以整体的视角去考察它们的商业运营情况,从而能具有竞争优势。2.3本章小结本章主要对系统开发的软件和硬件环境作了详细的讲解及使用这样的软件和硬件环境的优点作了阐述,为后续的章节介绍作了铺垫。3系统设计与分析3.1系统用例图根据抽象与分析,系统用例图如下:增加/删除操作增加/删除操作查询操作《actor》增加/删除系统《actor》查询系统管理老师绿化管理系统登录3.2补充规约简介本文档记录了绿化管理系统所有未在用例中描述的需求。功能性日志和错误处理能够备份树木的死亡记录及所有错误信息。安全性任何管理老师都需通过认证才可使用系统功能。可用性管理系老师只要使用我们组另一个成员开发的应用程序,就可以进入登录界面,登录成功即可使用系统功能。可靠性可恢复性如果系统在特殊时刻崩溃,为了使系统继续运作,需要恢复之前的备份数据。2.性能管理老师希望访问系统时,能快速的进入操作界面。因此服务器pc在启动时就启动sql服务器是关键。可支持性管理老师可根据具体情况增加绿化区域,树的种类等操作开发约束此系统我们采用c#.net开发,因为采用c#.net开发效率高,系统也易于维护。接口硬件接口打印机软件接口C#.net统一的数据库接口,采用此接口可连接和操作数据库。C#.net的控件接口。应用的领域规则ID规则规则1数据库中每一课树的id是不能为空而且不能与其他树木的id重复的,因为这是这课树木区别于其他树木的标志。规则2每个绿化带都有存储的树木上限,这个绿化带所有树木不能超过此上限法律问题此系统为学校内部管理使用,并没有作为产品发布,故不存在版权费用问题。3.3系统总体设计图系统分为两部分设计和开发,两部分是密切联系的,详细的设计图如下:图3-1系统总体设计图3.4本章小结本章主要介绍了系统设计的用例图,补充规约及系统总体的详细设计图。为后续章节的各模块详细设计奠定了基础。4系统开发4.1web服务的开发Webservices是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。Webservice平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Webservice,只要我们可以通过Webservice标准对这些服务进行查询和访问。下面我们将对本课题的这个网络类的接口设计做详细的介绍。4.1.1系统管理员本课题中,设计了三个供应用程序使用的管理系统管理员和管理员登录验证的接口函数。publicboollogin(stringuser,stringpwd,stringsqlcmdtable):此函数用于程序登录系统验证身份时调用,user为用户名,pwd为密码,sqlcmdtable为用户要登录的模块的用户表格。此函数的关键在于如何实现区分模块的管理员还有验证返回结果。代码实现如下:publicboollogin(stringuser,stringpwd,stringsqlcmdtable){boolsingle1=false,single2=false;using(SqlConnectionmyconnection=newSqlConnection()){myconnection.ConnectionString=this.sqlconnection();myconnection.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=myconnection;cmd.CommandText=@"SELECT[user]FROM"+sqlcmdtable;//根据传进来的参数查询相应管理员表格cmd.CommandType=CommandType.Text;SqlDataAdapteradapter=newSqlDataAdapter(cmd);DataTabletmptable=newDataTable();adapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(user==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){single1=true;//如果存在此管理员,置信号为true以便下面根据此信号继续验证密码break;}}if(single1){cmd=newSqlCommand(@"SELECTpwdFROM"+sqlcmdtable,myconnection);adapter=newSqlDataAdapter(cmd);adapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(pwd==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){single2=true;//如果密码正确,置此信号为true,以便返回结果break;}}}this.sql_release();//释放所有的连接/*根据上面的查询结果返回验证结果*/if(single2)returntrue;elsereturnfalse;}}publicbooladduser(stringuser,stringpwd,stringsqlcmdtable):此函数用于增加系统管理员,参数user为要增加的管理员用户名,pwd为要增加的管理员密码,sqlcmdtable用于区分模块管理员,因为系统有三大模块,每一模块的管理员各自存在不同的表格,因此设此参数以区分模块的管理员。核心代码如下:SqlCommandcmd=newSqlCommand();cmd.Connection=myconnection;cmd.CommandText=@"INSERTINTO"+sqlcmdtable+@"(user,pwd)VALUES('"+user+"','"+pwd+"')";//数据库语句,向所要求的管理员表格插入一行数据cmd.CommandType=CommandType.Text;try{cmd.ExecuteNonQuery();}catch(Exception){/*如果用户已经存在,则更新其信息*/cmd.CommandText=@"UPDATE"+sqlcmdtable+@"SETpwd='"+pwd+@"'WHERE(user='"+user+@"')";cmd.ExecuteNonQuery();this.sql_release();returnfalse;}this.sql_release();returntrue;publicintdeleteuser(stringuser,stringpwd,stringsqlcmdtable):此函数用于删除系统管理员,参数user为要删除的管理员,pwd为该管理员密码,sqlcmdtable为模块的管理员表格,此参数类似于验证和增加中的同名参数。核心代码如下:SqlCommandcmd=newSqlCommand();cmd.Connection=myconnection;cmd.CommandText=@"SELECTpwdFROM"+sqlcmdtable+@"WHERE(user='"+user+@"')";//先取出指定用户名的密码cmd.CommandType=CommandType.Text;SqlDataAdaptertmpadapter=newSqlDataAdapter(cmd);DataTabletmpdt=newDataTable();tmpadapter.Fill(tmpdt);try{stringtmpstr=tmpdt.Rows[0].ItemArray.GetValue(0).ToString();if(tmpstr==pwd)//如果密码与密码参数相同则执行删除操作{cmd.CommandText=@"DELETEFROM"+sqlcmdtable+@"WHERE(user='"+user+@"')";cmd.ExecuteNonQuery();this.sql_release();return1;//删除成功}}catch(Exception){this.sql_release();return2;//无此用户}}this.sql_release();return0;//密码不正确4.1.2查询本模块设计了一个函数供客户端应用程序查询使用。此函数为publicDataSetselectds(stringtablenameandcondition),参数tablenameandcondition为查询条件,只要应用程序端传入此参数,就能得到相应的数据集。此函数核心代码如下:publicDataSetselectds(stringtablenameandcondition){using(SqlConnectionmyconn=newSqlConnection()){myconn.ConnectionString=this.sqlconnection();myconn.Open();SqlCommandcmd=newSqlCommand(@"SELECT*FROM"+tablenameandcondition,myconn);SqlDataAdaptertmpadapter=newSqlDataAdapter(cmd);DataSettmpds=newDataSet();tmpadapter.Fill(tmpds);this.sql_release();returntmpds;}}此函数这样设计可实现模糊查询,因为查询条件是客户端传过来的,需要的条件,在客户端的应用程序首先处理好然后以字符串的形式传过来,就能得到相应的数据集,只用一个函数实现此功能代码上可简洁许多。4.1.3数据更新此模块的设计是整个系统的重点,涉及到绿化信息、绿化种类、绿化区域的录入、更新和删除,此模块共设计了八个函数,分别是更新主表Table1的信息:updatetable1();更新种类存储表格Table2的信息:updatetable2_properties_alter()、updatetable2_kind_add()和publicboolupdatetable2_kind_delete();增加或删除绿化区域:updatetable4_area_add()和updatetable4_area_delete();死亡树木的备份:updatebackup_tree_deleted_Table()和deletetree_Table1()。下面将对这八个函数作详细的解析。publicintupdatetable1(stringid,stringguanfu,stringarea,stringprice,stringyear,stringmonth,stringday,stringkind,stringstandard_scale,stringunit_scale,stringvalue,stringremark):此函数功能为更新主表的绿化信息,各个参数依次为主表中各个属性字段的值,以字符串的形式传递,此函数返回值有有个,1表示要录入的树的种类并没有在数据库中,需要先增加该种类的树,2表示要录入的树的区域不存在,需要先增加新区域或重新选择区域,3表示数据录入的格式不对,4表示要录入的树存在,并且信息更新成功,5表示树录入成功。核心代码如下:SqlDataAdaptertmpadapter=newSqlDataAdapter(@"SELECTkindFROMTable2",mycon);DataTabletmptable=newDataTable();if(kindx!="NULL"&&kind.Length!=0){tmpadapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(kind==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){x=true;break;}}if(!x){this.sql_release();return1;//数据库没有存此种类}}x=false;if(areax!="NULL"&&area.Length!=0){tmpadapter=newSqlDataAdapter(@"SELECTareaFROMTable4",mycon);tmptable=newDataTable();tmpadapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(area==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){x=true;break;}}if(!x){this.sql_release();return2;//数据库中不存在此区域}}x=false;SqlCommandcmd;tmpadapter=newSqlDataAdapter(@"SELECT[standardofscale]FROMjudge_standard_Table",mycon);tmptable=newDataTable();tmpadapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(standard_scale==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()&&standard_scalex!="NULL"){x=true;break;}}if(!x){cmd=newSqlCommand(@"INSERTINTOjudge_standard_Table([standardofscale])VALUES('"+standard_scale+@"')",mycon);cmd.ExecuteNonQuery();}cmd=newSqlCommand(@"INSERTINTOTable1(id,area,[yearofplanting],[monthofplanting],[dayofplanting],[standardofscale],[unitofscale],value,[guanfu],[priceofbuy],kind,remark)VALUES("+idx+@","+areax+@","+yearx+@","+monthx+@","+dayx+@","+standard_scalex+@","+unit_scalex+@","+valuex+@","+guanfux+@","+pricex+@","+kindx+@","+remarkx+@")",mycon);if(id.Length!=0){try{cmd.ExecuteNonQuery();}catch(Exception){try{cmd=newSqlCommand(@"UPDATETable1SETarea="+areax+@","+@"[yearofplanting]="+yearx+@","+@"[monthofplanting]="+monthx+@","+@"[dayofplanting]="+dayx+@","+@"[standardofscale]="+standard_scalex+@","+@"[unitofscale]="+unit_scalex+@","+@"value="+valuex+","+@"[guanfu]="+guanfux+","+@"[priceofbuy]="+pricex+","+@"kind="+kindx+","+@"remark="+remarkx+@"WHERE(id="+idx+@")",mycon);cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();return3;//数据格式不对}this.sql_release();return4;//更新成功}}else{this.sql_release();return0;//id号为空}this.sql_release();return5;//插入成功publicbooldeletetree_Table1(stringid):删除主表中的树,参数id为要删除的树的id,核心算法如下:SqlCommandcmd=newSqlCommand(@"DELETEFROMTable1WHEREid='"+id+@"'",mycon);try{cmd.ExecuteNonQuery();this.sql_release();returntrue;}catch(Exception){this.sql_release();returnfalse;}publicboolupdatetable2_properties_alter(stringkind,stringproperty,stringvalue):此函数功能在于更新种类树表格的属性值,参数kind为要更新的树的种类,property为要更新的属性,value为值。核心代码如下:SqlCommandcmd=newSqlCommand(@"UPDATETable2SET"+property+@"='"+value+@"'WHERE(kind='"+kind+@"')",mycon);//数据库语句,将信息更新至属性表格try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable2_kind_add(stringkind):此函数用于增加种类树,参数kind为要增加的种类树,此函数算法与更新属性的函数算法大同小异在此不再多做解释,核心代码如下:SqlCommandcmd=newSqlCommand(@"INSERTINTOTable2(kind)VALUES('"+kind+@"')",mycon);try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable2_kind_delete(stringkind):此函数用于删除种类树,kind为要删除的树的种类,此函数算法设计方面,关键在于,要删除某一种类树,首先需要先删除主表中这一种类的所有树,否则数据库将出现异常,因此算法设计上需要做两步删除,核心算法如下:SqlCommandcmd=newSqlCommand(@"DELETEFROMTable1WHEREkind='"+kind+@"'",mycon);//删除主表中该种类的所有树try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}cmd=newSqlCommand(@"DELETEFROMTable2WHEREkind='"+kind+@"'",mycon);//删除该种类的树try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable4_area_add(stringarea,stringareaid):此函数为增加绿化区域,参数area为要增加的区域的区域名,areaid为区域的id号,当学校要规划多一块绿化区域时,这时管理员要向这个区域增加新的绿化信息时,需要先告诉系统有新的绿化区域,此时在应用程序端设计了一个模块在此模块里调用此函数,即可向系统增加新的绿化区域。核心代码如下:SqlCommandcmd=newSqlCommand(@"INSERTINTOTable4(area,areaid)VALUES('"+area+@"','"+areaid+@"')",mycon);try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable4_area_delete(stringarea):如果学校的原有的某一块绿化区域现在要做别的用途,那么此时需要在系统中清除该绿化区域的所有信息及该区域,这时,应用程序端只要调用此函数便可删除该绿化区域及该区域上的所有绿化信息。该函数算法关键在于在删除区域之前需要先删除主表中所有有关该区域的绿化信息,否则数据库将出现异常,核心算法如下:SqlCommandcmd;cmd=newSqlCommand(@"DELETEFROMTable1WHEREarea='"+area+@"'",mycon);//删除主表中所有有关该区域的绿化信息try{cmd.ExecuteNonQuery();}catch(Exception){}cmd=newSqlCommand(@"DELETEFROMTable4WHEREarea='"+area+@"'",mycon);//删除该绿化区域try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatebackup_tree_deleted_Table(stringid,stringarea,stringyear,stringmonth,stringday,stringstandard_scale,stringunit_scale,stringvalue,stringguanfu,stringprice,stringkind,stringremark):当主表中有绿化信息被删除时,需要提示是否备份该绿化信息,此函数就是用于备份被删除的绿化信息的,各参数分别代表备份表格中各个属性字段的值,备份表格中的主键值由系统自动生成。此函数主要算法在于要先判断该表格中数据的函数,然后自动生成主键值,然后再将各字段插入数据表格中,核心算法如下:SqlCommandcmd=newSqlCommand(@"SELECT*FROMbackup_tree_deleted_Table",mycon);//查询表格中数据SqlDataAdapteradapter=newSqlDataAdapter(cmd);DataTablemytable=newDataTable();adapter.Fill(mytable);inttmp=mytable.Rows.Count+1;//根据表格中数据的行数加1作为主键值cmd=newSqlCommand(@"INSERTINTObackup_tree_deleted_Table(number,id,area,[yearofplanting],[monthofplanting],[dayofplanting],[dateofdeath],[standardofscale],[unitofscale],value,[guanfu],[priceofbuy],kind,remark)VALUES('"+tmp.ToString().Trim()+@"','"+id+@"',"+area+@","+year+@","+month+@","+day+@",'"+System.DateTime.Now.ToString().Trim()+@"',"+standard_scale+@","+unit_scale+@","+value+@","+guanfu+@","+price+@","+kind+@","+remark+@")",mycon);//插入移除的绿化信息的各个属性值

温馨提示

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

评论

0/150

提交评论