公交查询管理系统设计.doc_第1页
公交查询管理系统设计.doc_第2页
公交查询管理系统设计.doc_第3页
公交查询管理系统设计.doc_第4页
公交查询管理系统设计.doc_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

西南科技大学毕业设计信息管理与服务专业公交查询管理系统设计第一章 引 言1.1 课程背景城市公交是专门服务于市民出行的客运企业。它是城市社会和经济活动的重要组成部分。伴随着国民经济和城市建设的快速发展,城市经济的繁荣,人口的增加,城市必须解决好人们出行的需求。城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响,城市公交以其方便、快捷、容量大而成为城市交通的主体。但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。因此,急需一个方便、快捷的公交信息查询方式,本系统通过浏览器查询,实现中心控制、自动更新、更多的查询方式等等更多更强大的功能。随着城市经济的发展、规模的扩大以及人口的增长,城市交通问题日益突出。降低出行时间将使所有的公交利用者产生效益,快速的交通、更好的信息及更好的市场可以提高公交的形象,能够增加公交乘坐者。城市公共交通运输以其覆盖面广、经济、快捷的特点,成为绝大多数出行者的首选方式,也是各地城市政府大力发展的一种交通方式。本地市民特别是外来旅游、出差、就医等急需了解本地道路情况的人可以利用本系统方便快捷的查询出所有符合他们要求的公交路线,对他们的出行和生活提供帮助。我国城市公交乘客信息系统的发展处于一个落后的水平,广大乘客可以获得信息的方式很少,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。出于这个目的,在老师的指导下,我设计了这个城市公交线路查询系统。在对公交乘客出行心理特征进行分析的基础上,考虑乘客选择公交线路决策的因素,进行程序关键部分的框架设计。现阶段,人们的出入方式主要还是来源于城市公交,特别是对于那些到外地出差、打工,进行商业有关或其他事情需要在外地进行短暂停留的人而言,公交对他们是必不可少的,但是对于那个不属于自己所熟悉的城市,坐公交也是一个很大的难题。因此,开发一个公交查询系统就显得非常的重要。本系统的核心是对选择好的车次进行路线的查询,或者输入所要查询的车站名,点击“查询”按钮,查询所有含有该站的车次及相应的停靠站。此处既可以“精确查询”也可以是“模糊查询”,“模糊查询”主要方便那些对站名不是很清楚,但知道其中的一部分的乘客,系统可以帮助他们快速的查出。1.2 论文的研究内容公交查询系统是一个取代过去由人工查询的查询系统。本论文论述了一个基于浏览器/服务器(B/S,Browser/Server)模式的公交查询系统的研究和实现的过程。论文从开发平台和工具谈起,对ASP.NET服务器所提供的组件及其属性和方法做了一般介绍,更重要的是阐述了ASP.NET的数据库访问组件ADO.NET的使用方法。最后,详细介绍了如何创建“公交查询系统”的全部过程。1.3 论文的组织结构论文第二章是系统的开发工具与环境概述,介绍了该系统设计开发使用的Visual Studio .net中的ASP.NET开发语言和系统在数据库的设计开发中使用的数据库连接技术ADO.NET,并介绍了系统开发所需要的计算机环境。第三章是系统的需求分析和数据库总体设计,包括系统需求,性能分析等。第四章是系统的设计总说明,包括系统的模块划分,数据库的概念结构设计和数据库的逻辑结构设计。第五章是系统的详细设计和实现,包括系统各个界面设计和相关重要注释。第六章是系统测试和维护。最后是结论、致谢、参考文献。第二章 开发工具与环境2.1 ASP.NET简介ASP.NET 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的的优势。ASP.NET 建立在 .NET Framework 的编程类之上,它提供了一个 Web 应用程序模型,并且包含使生成 ASP Web 应用程序变得简单的控件集和结构。ASP.NET 包含封装公共 HTML 用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web 服务器上运行,并以 HTML 的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为 Web 开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XML Web services 功能,ASP.NET 开发人员可以编写自己的业务逻辑并使用 ASP.NET 结构通过 SOAP 交付该服务。Visual Studio .NET 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Basic .NET、Visual C+ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。2.2 ASP.NET技术的优点ASP.NET是一种将各种Web元素组合在一起的服务器技术,是一个统一的Web开发平台,它提供了生成一个完整的Web应用程序所必须要的各种服务。1与以前的开发模型相比较,它提供了以下数个重要的优点:(1)增强的性能。ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码之前便显著提高了性能。(2)世界级的工具支持。ASP.NET 框架补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。(3)威力和灵活性。由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方案都可从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言(如C#),或是跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。(4)简易性。ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署的站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。(5)可管理性。ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了 ASP.NET 框架应用程序的部署。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。(6)可缩放性和可用性。ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。(7)自定义性和扩展性。ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。(8)安全性。借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。2.3 .NET Framework概述.NET Framework 是用于生成、部署和运行 XML Web services 和应用程序的多语言环境。它由以下几个主要部分组成:(1)公共语言运行库。运行库实际上在组件的运行时和开发时操作中都起到很大的作用,尽管名称中没有体现这个意思。在组件运行时,运行库除了负责满足此组件在其他组件上可能具有的依赖项外,还负责管理内存分配、启动和停止线程和进程,以及强制执行安全策略。在开发时,运行库的作用稍有变化;由于做了大量的自动处理工作(如内存管理),运行库使开发人员的操作非常简单,尤其是与今天的 COM 相比。2特别是反射等功能显著减少了开发人员为将业务逻辑转变为可重用组件而必须编写的代码量。 (2)统一编程类。该框架为开发人员提供了统一的、面向对象的、分层的和可扩展的类库集 (API)。目前,C+ 开发人员使用 Microsoft 基础类,而 Java 开发人员使用 Windows 基础类。框架统一了这些完全不同的模型并且为 Visual Basic 和 JScript 程序员同样提供了对类库的访问。通过创建跨所有编程语言的公共 API 集,公共语言运行库使得跨语言继承、错误处理和调试成为可能。从 JScript 到 C+ 的所有编程语言具有对框架的相似访问,开发人员可以自由选择它们要使用的语言。2.4 ADO.NET概述ADO.NET并不是ADO的升级版本,它是全新的面向对象模型。比ADO更适应于分布式及Internet等大型应用程序环境,为了多人同时存取更具扩展性,ADO.NET的数据存取采用的是离线存取模式,可说是专门为.NET平台设计的数据存取结构。它具有简单地访问关系数据、可扩展性、支持多层应用程序、统一XML和关系数据访问的特点。ADO.NET的主要目标是提供对关系数据的简单访问功能。坦白的说,易于使用的类描述关系数据库中的表、列和行。另外,ADO.NET引入了DataSet类,它代表来自封装在一个单元中的关联表中的一组数据,维持他们之间完整的关系。这是在ADO.NET中的新概念,可以显著的扩展数据访问接口的功能。ADO.NET可以扩展它为插件.NET数据提供者(也称为可管理提供者)提供了框架,这些提供者被构建,以便从任何数据源读取和写入数据。ADO.NET提供了两种内置的.NET数据提供者,一种用于OLE DB数据源,另一种用于Microsoft SQL Server。可以通过OLE DB访问数据格式(比如Microsoft Access)、第三方数据库和非关系数据。另外,Microsoft最近预演了用于ADO.NET的ODBC.NET数据提供者,它允许.NET访问更多的旧的数据格式和第三方数据库。ADO.NET用于多层应用程序。这是当今商业和电子商务应用程序最常见的体系结构。在多层体系结构中,应用逻辑的不同部5分1运a行s在p多x个服务器或进程中,每一部分就称为一层。3ADO.NET使用开放的Internet标准XML格式在层之间通信,允许数据通过Internet防火墙来传递,并允许以非Microsoft技术来实现一层或多层。那么在Visual Studio.NET中ADO.NET访问数据库分为两种。一种是SQL Server数据库,另一种是其它任何类型的数据库。本系统的后台数据库为SQL Server 2008,因此是通过SQLConnection、SqlCommand、SqlDataAdapter、DataSet等几个主要的数据访问对象来访问数据的。2.5系统的运行环境本系统的程序运行环境具体如下。系统开发平台:Micrcosoft Visual Studio 2013。系统开发语言:C#。数据库管理软件:Microsoft SQL Server 2008。运行平台:Windows 98 到 Win 8。运行环境:Microsoft .NET Framework SDK 4.0。分辨率:最佳效果:1366* 768像素。第三章 需求分析3.1 系统需求分析随着我国经济的高速发展,人们生活水平的提高,越来越多的人开始热衷于到外地旅游。那么对于这些外来旅游者,首先搞清这个城市的公交路线显的很重要。宜宾作为一个旅游城市,每年都要吸引大量的游客,为了满足这些游客熟悉公交路线的需求,特以公交查询系统为设计课题。本软件不仅能给游客带来方便,也能给广大市民提供方便。本作者认为这样的系统应该具有很好的实用性。开发本系统的目标就是立足广大乘客的实际需求,着眼于公交事业的未来发展,规范公交管理,提高服务质量,方便乘客查询,因此设计该系统。人们生活水平的提高,越来越多人喜欢旅游,但是第一次来一个陌生的城市,肯定对公交路线不熟悉,所以必定需要一个能查看具体公交线路的公交系统。为了方便用户的查询,针对于有些乘客只知道车次或某个站点,本系统也给出了公交线路线查询、公交站点查询、公交换乘查询等功能,进一步方便大家的出行。本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能。主要由前台三个模块,线路查询、站点查询、公交换乘模块和后台管理模块组成。功能名称:线路查询功能概述:可以获得要查询公交所通过的各个站点。功能名称:站点查询功能概述:通过输入的指定站点查询经过该站点的公交。功能名称:公交换乘查询功能概述:分为公交直达、公交一次换乘,主要体现那些不可直达需要转车的路线的所有换法(如果用户输入的起始点和终点,有一条及一条以上的公交线可以直达的,则为公交直达;如果输入的起始点和终点,没有一条公交线可以直接到的,系统将会给出一次换乘的方案,则为公交一次换乘)。功能名称:后台管理功能概述:用于管理员登陆,添加、修改、删除公交线路,修改信息资料。 本系统提供了的车次查询功能,乘客可以方便的进行查询,以防乘错车次。当然有些功能的智能化不是很强,系统有待进一步来完善。3.2 数据库需求分析数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。数据库技术是由传统的文件系统发展而来的,从层次模型、网状模型发展到关系模型。数据库技术是数据管理的最新技术,是计算机科学的一个重要分支,它能指导我们正确地设计数据库系统,它的出现极大地促进了计算机应用的发展。4采用数据库技术的原理和方法可以有效地设计实用的数据库系统。一个完整的数据库系统包括数据库管理系统(DBMS),数据库管理员(DBA)、数据库(DB)、应用程序和相应的硬件设施。目前许多数据库管理系统都基于关系模型,关系模型的主要特点是用表格结构表达实体,用键表示实体与实体之间的联系。与层次模型和网状模型相比,关系模型比较简单,容易为初学者接受。关系模型是由若干个关系模式组成的集合,关系模式相当于记录类型,它的实例称为关系。5每个关系是一张表格。表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行数据操作,并不涉及到存储结构,访问技术等细节。关系模型是数学化的模型,要用到集合论,离散数学等知识。SQL语言是关系数据库的代表性语言,已经得到广泛应用。在设计数据库时,应注意数据的安全性,保证数据的安全,防止非法用户访问数据库,以免泄露重要信息,同时也能防止非法用户的蓄意破坏。有许多保护数据的方法,如采用用户标识,口令和密码及访问控制等方法。一个成功的数据库应用系统应具有用户标识,每一个合法用户具有一个用户名和相应的口令,进入数据库应用系统前必须输入正确的口令,否则无法进入系统,这就保证了只有合法的用户才能操作数据库系统。为了保证数据的合法语义,必须对数据库的数据进行完整性约束,即防止用户输入不合语义的数据。在设计应用软件时,应严格按照软件工程学的方法进行设计,传统的方法采用瀑布模型,从问题定义、可行性分析、需求分析、概念设计、总体设计、系统实现、编码和软件测试、运行和维护等软件生命周期内,每一阶段均在前一阶段的基础上进行设计,并在每一阶段有相应的文档资料。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:数据库需要分析,数据库概念结构设计,数据库逻辑结构设计。3.3 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,城市公交查询系统应该满足以下的性能需求。时间特性需求:系统执行查询,文字信息返回时间不得超过 15 秒;地图生成时间不超过 30 秒;任何页面如操作超过 5 分钟,系统自动返回首页。 精度需求:系统保证查询结果的正确性,用文字详细进行描述并用地图辅助示意。 适应性:系统具有一定的可扩展性,适应地理信息变化,允许管理员随时对其进行更新和维护。3.4 系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。由于公交查询系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,车次及运行时间的准确性很大程度上决定了公交查询系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。3.5 系统的开放性和系统的可扩充性公交查询系统在开发过程中,应该充分考虑以后的可扩充性。例如网上查询的用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3.6 系统的易用性和易维护性公交查询系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。公交查询系统中涉及到的数据是公交公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。3.7 系统的标准性系统在设计开发过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流的国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。3.8 系统的先进性目前计算系统的技术发展相当快,做为公交查询系统工程,应该保证系统在未来相当长一段时间内仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。6第四章 系统设计总说明4.1 概述概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。4.2 功能模块划分查询系统模块:该模块实现公交查询功能。可实现按线路查询、站点查询和换线查询三种查询方式。后台系统模块:该模块实现数据的新增、修改、删除功能。翠屏区公交查询系统查询后台管理线路查询站点查询换乘查询新增修改删除线路车次站名系统模块图如图4.1所示:车辆参数图4.1 系统模块图4.3 数据库结构设计在系统设计的开始,作者首先考虑的是如何用数据模型来完成数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。7在本系统中作者采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但它只是数据库设计的第一步。E-R图是直观表示概念模型的工具,它有三个基本成分:(1)矩形框,表示实体类型(考虑问题的对象)。(2)菱形框,表示联系类型(实体间的联系)。(3)椭圆形框,表示实体的属性。8实体和属性的定义如下:管理员表:登陆ID,登录姓名,登录密码。站名表:站名编号,站名。车辆线路编号表:车次,车线类型。线路表:线路编号,车次,站名,次序。车辆表:车辆编号,车次,车辆类型,服务类型,票价,IC卡类型,运行区间。各实体属性图如图4.2所示:站 名站名编号站名车辆线路编号车次车辆类型线 路线路编号次序车次站名车 辆服务类型运行区间车辆编号票价车辆类型车次IC卡类型管 理 员登录ID登录姓名登录密码图4.2 实体属性关系图4.4 数据库设计表字段名数据类型长度是否为空是否为主键说明loginIDInt 4否是登录编号LoginNamevarchar50否否登录用户名loginPwdvarchar50否否登录密码表4.1 登录表字段名数据类型长度是否为空是否为主键说明站名编号Int4否是站名编号站名Varchar50否否站名表4.2 站名表(站名表存放站名等数据)字段名数据类型长度是否为空是否为主键说明车次Int4否是车次车线类型Varchar50否否车线类型表4.3 车辆线路编号表(车辆线路编号表存放线路编号等数据)字段名数据类型长度是否为空是否为主键说明线路编号Int4否是线路编号车次Int4否是车线类型站名Varchar50否否次序Int4否否表4.4 线路表(线路表存放公交车线路的数据)字段名数据类型长度是否为空是否为主键说明车辆编号Int4否是车辆编号车次Int4否是车次车辆类型Varchar50否否服务类型Varchar50否否票价Varchar50否否IC卡类型Varchar50否否运行区间Varchar50否否表4.5 车辆表(车辆表存放车辆的相关信息)第五章 详细设计与实现5.1 数据库的连接在动态网站中,调用数据库中的数据是十分频繁的,为了避免编写重复的代码,编写一个数据库连接文件是非常重要的。DB.cs文件中包含了本系统中的数据库的连接代码。本系统的数库的连接代码如下:public static SqlConnection createConnection()SqlConnection con=new SqlConnection(server=.;database=城市公交查询系统;uid=sa;pwd=;);return con;5.2 按线路查询线路查询模块:用户进入系统后,在线路查询模块的输入框中输入要查询的线路,点击查询按钮,系统首先检查用户所查询的线路是否存在,如果不存在给出出错提示,如果存在给出这条线路的相关信息。如图5.1所示:图5.1 线路查询主要代码:if (!Page.IsPostBack) con.Open(); SqlCommand cmd = new SqlCommand(select * from Province, con); cmd.CommandText = select * from 车辆线路编号表 order by 车次 ASC; SqlDataReader CheCi = cmd.ExecuteReader(); this.DropDownList1.DataSource = CheCi; this.DropDownList1.DataTextField = 车次; this.DropDownList1.DataValueField = 车次; this.DataBind(); CheCi.Close(); con.Close(); 如图5.2所示:图5.2 线路查询及结果主要代码:string num=Request.QueryStringnum.ToString();con.Open();/显示车辆系数SqlCommand cmdCheliang=new SqlCommand(select * from 车辆表 where 车次=+num,con);SqlDataReader sdrCheliang=cmdCheliang.ExecuteReader();this.dgCheliang.DataSource=sdrCheliang;this.dgCheliang.DataBind(); sdrCheliang.Close();/显示具体线路情况SqlCommand cmd=new SqlCommand(select * from 公交车线路表 where 车次=+num+order by 次序 ASC,con);SqlDataReader sdr=cmd.ExecuteReader();trywhile(sdr.Read()line+=sdr站名.ToString();line=line.Replace(sdr站名.ToString(),+sdr站名.ToString()+);line+=-;finallysdr.Close();con.Close();int i;i=Convert.ToInt32(line.Length);line=line.Substring(0,i-3);5.3 站点查询如图5.3所示:图5.3 站点查询主要代码:string StationName = this.TextBox1.Text.Trim(); con.Open(); SqlCommand cmd = new SqlCommand(select count(*) from 站名表 where 站名= + + StationName + , con); int count = Convert.ToInt32(cmd.ExecuteScalar(); con.Close(); if (StationName = | StationName = null) Response.Write(alert(输入为空);location.href=name.aspx; ); else if (count 0) Response.Redirect(showStationName.aspx?StationName= + StationName); 如图5.4所示:图5.4 站点查询主要代码:protected void Page_Load(object sender, EventArgs e) if(!this.IsPostBack)string StationName=Request.QueryStringStationName.ToString();this.lblStationName.Text=StationName;this.DataToBind();#region Web 窗体设计器生成的代码override protected void OnInit(EventArgs e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/InitializeComponent();base.OnInit(e);private void InitializeComponent() this.dgStationName.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgStationName_PageIndexChanged);this.dgStationName.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgStationName_ItemDataBound);#endregionprivate void dgStationName_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)this.dgStationName.CurrentPageIndex=e.NewPageIndex;string StationName=Request.QueryStringStationName.ToString();this.lblStationName.Text=StationName;this.DataToBind();private void DataToBind()string StationName=Request.QueryStringStationName.ToString(); con.Open();SqlDataAdapter sda=new SqlDataAdapter();sda.SelectCommand=new SqlCommand(select * from 公交车线路表 where 站名=+StationName+,con);DataSet ds=new DataSet();sda.Fill(ds,ss);this.dgStationName.DataKeyField=编号;this.dgStationName.DataSource=ds.Tablesss.DefaultView;this.DataBind();con.Close(); protected void dgStationName_ItemDataBound(object sender, DataGridItemEventArgs e) if (e.Item.ItemType = ListItemType.Item | e.Item.ItemType = ListItemType.AlternatingItem) e.Item.Attributes.Add(onmouseover, c=this.style.backgroundColor;this.style.backgroundColor=#6699ff); e.Item.Attributes.Add(onmouseout, this.style.backgroundColor=c); 5.4 换线查询如图5.5 所示:图5.5 换线查询主要代码:string startPos = this.TextBox1.Text; string endPos = this.TextBox2.Text; string StationName = this.Button1.Text; con.Open(); SqlCommand cmd = new SqlCommand(select count(*) from 站名表 where 站名= + + startPos + , con); int countStart = Convert.ToInt32(cmd.ExecuteScalar(); cmd.CommandText = select count(*) from 站名表 where 站名= + + endPos + ; int countEnd = Convert.ToInt32(cmd.ExecuteScalar(); con.Close(); if (startPos = endPos) Response.Write(alert(错误,相等!);location.href=Between.aspx; ); if (startPos = | startPos = null) & (endPos = | endPos = null) Response.Write(alert(错误,输入为空);location.href=Between.aspx; ); else if (countStart 0) if (countEnd 0) Response.Redirect(showBetweenStation.aspx?a= + startPos + &b= + endPos); else Response.Write(alert(错误);location.href=Between.aspx; ); else Response.Write(alert(错误);location.href=Between.aspx; ); 如图5.6 所示:图5.5 换线查询及结果主要代码: string a=Request.QueryStringa.ToString();/其始站名string b=Request.QueryStringb.ToString();/终点站名ArrayList alS=new ArrayList();/存放经过起始站名的车次ArrayList alE=new ArrayList();/存放经过终点站名的车次ArrayList alNum=new ArrayList();/存放经过起点和终点的公共车次ArrayList alzhanm1=new ArrayList();/存放经过起点站名的车次的站名ArrayList alzhanm2=new ArrayList();/存放经过终点站名的车次的站名ArrayList alzhanming1=new ArrayList();/存放转车前的站点ArrayList alzhanming2=new ArrayList();/存放转车后的站点 SqlConnection con = new SqlConnection(Data Source=(LocalDB)v11.0;AttachDbFilename=C:UsersykDesktopwebAPP_DATA城市公交查询系统.mdf;Integrated Security=True);con.Open();SqlCommand cmd=new SqlCommand(SELECT 车次 FROM 公交车线路表 WHERE 站名=+a+,con);SqlDataReader sdr=cmd.ExecuteReader();while(sdr.Read()alS.Add(sdr.GetValue(0);sdr.Close();cmd.CommandText=SELECT 车次 FROM 公交车线路表 WHERE 站名=+b+;SqlDataReader sdr1=cmd.ExecuteReader();while(sdr1.Read()alE.Add(sdr1.GetValue(0);sdr1.Close();for(int i=0;ialS.Count;i+)for(int j=0;jalE.Count;j+)if(alSi

温馨提示

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

评论

0/150

提交评论