旅游信息网的设计

摘 要

旅游信息网是典型的电子商务销售平台, 是基于B/S模式开发的网上旅游信息系统的,实现网上销售,已经成为未来商场战争中占有优势地位的必不可少的工具了。本旅游信息网系统主要以Visual Studio.NET为主要的网络开发工具,以SQL Server 2005为后台的数据库开发工具,采用ASP.NET脚本和SQL Server 2005数据库技术来完成该系统。其主要功能有旅游精选路线、定团旅游、在线订票、住宿推荐、景点推荐等功能。本系统利用微软平台技术构建具有先进性、扩展性、伸缩性、健壮性的旅游业务信息系统。系统设计按照三层结构各自的标准分层进行,做到业务与实现分离、逻辑与数据分离,运用开发的标准构建系统可以很好地支持未来数据交换和系统升级。通过HTML界面构建的人机交互接口,可以大幅度降低用户的适应难度,提高系统的使用效率。系统数据模型、业务模块化等设计技术的使用,方便了系统的扩展与维护。因此,本旅游信息网的设计与实现具有较强的实用性。

关键词: 1、电子商务 2、ASP.NET 3、SQL 4、交互性

目 录

前 言…………………………………………………………………………………………7
第一章 系统概述 ……………………………………………………………………………8
1.1本课题的研究意义 …………………………………………………………………8
1.2本论文的目的及内容 ………………………………………………………………8
第二章 系统开发工具简介 …………………………………………………………………10
2.1 B/S体系结构 10
2.2 SQL Server 10
2.3 ASP.NET 11
第三章 系统调研及需求分析 …………………………………………………………….12
3.1 系统调研 …………………………………………………………………………12
3.2 需求分析 …………………………………………………………………………12
第四章 系统设计与实现 ………………………………………………………………….15
4.1 系统设计思想 ……………………………………………………………………15
4.2旅游系统主要模块设计 ………………………………………………………….16
4.3 数据库设计 …………………………………………………………………….17
4.4 系统典型逻辑实现 ……………………………………………………………….20
第五章 旅游信息网的测试与运行 ……………………………………………………….26
5.1 首页测试 …………………………………………………………………………26
5.2 会员注册界面测试 ………………………………………………………………27
5.3线路介绍界面的测试 ……………………………………………………………28
5.4 新闻界面的测试 …………………………………………………………………29
5.5 管理员登陆界面测试 29
5.6景点管理界面测试 30
总 结 31
参 考 文 献 33

前 言

近年来,我国国内旅游市场发展迅速,在国家旅游局最新统计数据显示:2014年,我国GDP首破60万亿,达到636463亿元,同比增长7.40%。就旅游行业来说,2014年我国旅游业实现新跨越,全年旅游总收入约3.25万亿元。国内旅游36.11亿人次,同比增长10.67%。一方面,旅游人次在增加,国民的旅游消费水平也在不断攀升。2014年国内旅游总收入达到30312亿元,同比增长15.40%。从全年形势来看,我国旅游业已经进入“大众旅游”阶段,人们的出游意愿不断高涨,国内旅游市场可以继续保持相对乐观的预期,大大高于国民经济平均增长速度。随着五天工作制的实施和国民收入水平的进一步提高,国内旅游市场将加速扩大。面对迅速增长的旅游市场,开发出更多满足旅客需求的旅游产品,是广大旅游工作者面临的一个重要课题。大力促进风景名胜的旅游在线报名系统,形成适合散客网上报名系列产品,是促进我国旅游事业加速发展的一条有效途径。
中国互联网络信息中心发布的2015第三十六次CNNIC调查结果显示,内地上网人数与日俱增。互联网在国内的快速发展已经积累了接近7亿网民。用户在网上关注的信息也不再是单一的新闻。报告数据显示,用户在网上经常进行的操作中,浏览信息占59.3%,查收邮件占33.8%,互动聊天占74.2%,网络游戏占56.4%,网上购物占67.5%。而随着地面物流等基础设施的进一步完善,网上购物的发展速度会远远大于今天的发展速度。
据我国IT行业发布的报告表明,互联网的快速发展,直接带动了电子商务进入千家万户。随着淘宝、京东等实体商品电子商务网站的兴起,越来越多的网民已经逐渐适应了网络购买产品的习惯。随后,途牛旅游网、驴妈妈的建立,也开始撬动电子商务在旅游服务业的扩张。在三个旅游出行服务网络提供商的竞争中,携程像魏国,拥有大片疆土和人员,势力最强,并通过大肆收购投资防御阵地,核心竞争力是电话,即电话呼叫系统。去哪儿则像吴国,拥有垂直搜索的巨大技术优势,进可攻退可守,在比价领域拥有了立足之地。核心竞争力是技术,即垂直搜索技术。途牛则像蜀国,看起来干的“私人定制”很艰苦,但用户喜欢很得人心,不断攻伐。核心竞争力是人,即专业旅游顾问。途牛的专业旅游顾问利用互联网信息发布的优势,通过网络媒介发布了大量有质量、有深度的旅游信息,深受众多旅游拥趸。
所以,把旅游搬到网上进行,是很有必要,也是很有市场的。

第一章 系统概述

1.1本课题的研究意义
目前旅游行业的竞争状态已不是仅用惨烈二字可以形容了。面对如此大的压力,除了传统的打价格战或买赠等手段外,应该另想一条更好的路,以避开这面对面的争锋。而网上销售平台,业已发展多年,大的如阿里巴巴、淘宝网,小的就更不胜数了,和地面销售一样,竞争异常激烈。但是,一如地面销售一样,只要是能另辟蹊径、努力创新的销售商,都会在竞争中立于不败之地。
通过分析当前旅游业的形势,改革以往人们要想参加旅游活动,必须亲自到现场进行报名确认的弊端,开发出一个具有后台管理的旅游网站在线报名系统,用户只需登陆到Internet网,就可以选择旅游线路,查看旅游费用,大大方便了人们, 最终实现了旅游管理的网络化,使各类信息有序地进行存储。制作网站的主题,把前台和后台相关联起来,设计一个美观大方的前台界面,使网站更实用,更方便用户选择不同的旅游线路,报名参加旅游项目,后台设计要便于管理员管理,方便管理员管理地域,处理报名信息,添加、删除、编辑、管理旅游线路,网站的整体最终要做到易于扩展、维护,并且具有可靠的安全性。
通过网站,实现旅游信息快速发布,使得人们更加便利的参加旅游项目,为人们提供多种旅游线路,拓宽消费者的选择范围,向人们展示一个友好、美观、大方的旅游网站在线报名系统。所以,网上旅游平台,就是要在网络商海上,保持创新,并且与地面门店保持动作协调一致,以期在两处惨烈的战场中搏得一线生机。
1.2本论文的目的及内容
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对线上销售平台进行管理,具有线下操作所无法比拟的优点。例如:检索迅速、方便快捷、高效率、低成本、存储量大、寿命长、沟通成本低等,这些优点能够极大地提高管理和办事的效率。因此,开发这样一个网上销售平台就成为很有必要的事情。而且只要系统的设计合理,就可以为公司再开一条销售通路,减少库存堆积,利用网络的共享、互动的优点,结合地面销售的优点,借助数据库管理技术,开发一个网上服务销售平台,实现旅游网上服务销售规范化、个性化、人性化。
本文通过系统调研和可行性分析、需求分析、系统设计、系统实现等经典软件工程流程对旅游信息网的构建进行描述。本旅游信息网采用微软平台的开发技术,运用IIS Web服务器作为动态脚本环境、使用ASP.NET作为动态页面的构建语言、SQL Server作为数据的持久化环境,运用MVC等设计模式构建。

第二章 系统开发工具简介

本系统使用微软.NET技术,选择ASP.NET作为动态页面的构建脚本语言,使用SQL Server 2005作为数据支撑,综合多家电子商务平台开发商优点以及结合目标销售商实际情况而开发。
2.1 B/S体系结构
本在线旅游系统采用B/S构建,通过数据库服务器持久化系统数据,部署在Web服务器上的脚本用于构建系统逻辑,浏览器为用户提供表现层和人机交互。
在这里插入图片描述

图2-1 数据库、Web服务器、浏览器三层系统结构
采用B/S构建的软件系统相比C/S体系结构具有较多明显优点:
1、B/S体系结构采用静态页面采用HTML语言、动态页面采用ASP.NET脚本、数据访问使用微软组件和SQL语言,整个系统采用了软件行业开放的标准,能够很好地适应不同操作系统,具备较高的通用性和跨平台性。
2、采用动态脚本语言构建系统应用逻辑,具有较低的构建成本,实施和维护人才容易寻找。经过良好的设计的开发脚本具有较强的伸缩性和扩展性,方便进行系统升级和扩展。
3、用户使用方便、培训成本低。采用标准HTML语言显示的网站界面可以被用户很好地适应,从而提高了用户的操作性。
以上几点展现了B/S平台构建在线旅游系统的优势,使得开发小组可以把精力全部集中在旅游系统的业务逻辑,降低开发风险和使用难度,因此,本在线旅游系统使用B/S体系构建。
2.2 SQL Server
本旅游系统的数据持久化平台采用的是Microsoft的MS SQL Server 2005,MS SQL Server 2005是微软公司所研发的在Windows平台上运行的DBMS(数据库管理系统),它提供了良好的使用界面、优良的存储和查询性能、安全可靠的备份和还原机制,可以很好的为系统数据库底层支持。SQL Server 2005内置的数据库系统管理、开发工具可以方便快捷地设计和开发系统数据库。作为关系型数据库,SQL Server 2005通过表(Table)的存储数据,通过标准SQL语言为程序提供数据访问接口。
2.3 ASP.NET
ASP.NET 2.0是统一的Web开发模型,其功能包括使用尽可能少的代码生成企业级Web应用程序所必需的各种服务。当编写ASP.NET应用程序的代码时,可以访问.NET Framework中的类;可以使用与公共语言运行库(CLR)兼容的任何语言来编写应用程序的代码,这些语言包括Microsoft Visual Basic、C#和J#,使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的ASP.NET Web应用程序。
ASP.NET的工作原理是,首先,有一个HTTP请求发送到Web服务器要求访问一个Web网页,Web服务器通过分析客户的HTTP请求来定位所请求网页的位置。如果所请求的网页文件名的后缀是.aspx,那么就把这个文件传送到aspnet_isapi.dll进行处理,由aspnet_isapi.dll把ASP.NET代码提交到CLR。如果以前没有执行过这个程序,那么就由CLR编译并执行,得到纯HTML结果;如果已经执行过这个程序,那么就直接执行编译好的程序并得到纯HTML结果。最后把这些纯HTML结果传回浏览器作为HTTP响应。浏览器受到这个响应之后,就可以显示Web网页。

第三章 系统调研及需求分析

3.1 系统调研
经过本人长期调研及亲自参与整个服务的工作流程,结合本人的专业知识,得出以下调研结果。
1、服务终端的维护人员专业技术水平有限,其中大部分为大专毕业;
2、服务终端已经拥有配置很好的电脑系统,所以,硬件方面已经得到解决;
3、旅游公司方面也迫切地寻求一个更新更适合其自身情况的网络服务销售平台,所以在政策上十分支持,在人事支持方面已经做出了很大的帮助。
4、旅游公司毕竟是只有地面销售背景的传统型销售商,没接触过网络销售,所以,在设计新系统时,要把这些因素考虑在内。
据前期对旅游服务店的数据流程、管理模式、外延端口及相关部门的调查研究,笔者总结出现行旅游服务店销售系统的整体概况。总体而言,无论从销售模式还是终端物流,都与同行相距不大,没有多大的系统优势。
下面就笔者观察调研的系统模型及组织结构进行简单分析。

在这里插入图片描述

图3-1 现行旅游公司旅游信息网数据流程图
整体而言,销售模型呈单环状,信息管理单一,销售模式单一,交流平台单一。根本没有可以与同行竞争的优势。
3.2 需求分析
旅游信息网工作流程为:系统启动并进入系统主界面,所有用户都可以浏览系统主页面。通过权限判断,普通游客只能浏览、阅读和查询旅游信息,注册用户除了可以完成普通用户的操作外,还可以进行对旅游的服务操作。管理员可以对系统信息进行添加、修改和删除的权限,及对系统管理的所有功能进行操作。所有用户均可以实现查询功能。
本旅游信息网的业务功能如图3-2所示:

在这里插入图片描述

旅游在线报名系统是管理员(旅行社)、客户紧密参与的系统。在本系统中,客户通过本系统进行线路的查询,然后通过报名系统对线路进行预定,并填写个人资料、联系方式。管理员(旅行社)通过对数据库的访问,对客户进行大致的了解,通过客户的联系方式与客户进行相关具体信息的交流,管理员还可通过后台进行线路的修改与推荐,以及对客户报名名单的管理。
本旅游网站需设置栏目设置见下表:
一级栏目 二级栏目 三级栏目 四级栏目
首页 旅游图片 攻略评论
图片 介绍
餐饮
住宿
娱乐
夜生活
购物
文化
经验
最热日志
最新旅游日志
驴友同行
最新旅游图片
旅游日志发布
合作链接
广告
目的地 地图/地点查询 旅游日志 攻略评论
图片
娱乐活动 餐饮
住宿
娱乐
夜生活
购物
文化
经验 攻略评论
图片
旅游博客 旅游日志 文章、图片
社区 驴友问答
同城
俱乐部
个人管理 信息传递交友
个人信息系统
用户积分系统

第四章 系统设计与实现

4.1 系统设计思想
4.1.1 注重代码复用
把页面中一些常用的部分集成为模块,例如页面的头部、尾部和数据库连接文件,这样设计新的页面时如果有重复出现的部分,只需要拿现成的模块来组装就可以了。
在本系统中,将数据库连接存入conndb.ASP.NET文件中,当需要数据库连接时,只要用Include语句包含此文件即可。
另外系统页面结构定义在一个模板文件template.ASP.NET中,在这个文件中可以看到系统中基本的页面组成结构。只要在此模板页面中的特定位置加上实现某种功能的页面代码,此页就会成为一个具有特定功能的 完整的页面。例如ProductDetail.ASP.NET文件是在template.ASP.NET文件中加入了下面一行代码而具备了显示图书详细信息的功能。
call ShowProduct(RealSruing(Request.QUERYstring(“id”)))
4.1.2 注重安全性
1)不把SQL 2005数据库放在网站内部
不把SQL 2005数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,使用SQL 2005数据库或Oracle数据库,或者将SQL 2005数据库文件放在网站虚拟目录以外。
2)过滤字符串中的单引号
当用字符串来组织SQL语句时,最重要的一个问题就是过滤字符串中的单引号,因为SQL语句中的字符是以单引号为分界的,例如下面的语句,在执行时就会出错:
strName=“I’m Hacker”
strSQL="SELECTFROM User WHERE[Name]=‘“&strName&”’"
conn.Execute strSQL
这样,在实际执行过程中最终SQL语句如下:
SELECT
FROM User WHERE [Name]=‘I’m Hacker’
由于在“I‘m Hacker”中包含一个单引号“’”,这样系统会认为在字母“I”后面已经结束,但后面仍有字符,于是就会提示语法错误。因此需要将单引号过滤掉,或者替换为两个单引号(在SQL语法中用两个单引号表示一个单引号),只要使用VBScript中的Replace函数就可以达到目的。
4.1.3 注重人机交互界面
1、设计过程充分考虑现有旅游网站市场的共性及本站特点,体现专业性;
2、充分体现本系统的便捷性、适用性与开放性;
3、鉴于系统的重要性,对网络采取必要的加密措施和安全措施;
4、全部页面格式用样式表单控制(css);图片文件存入IMAGES目录。
5、共享图片放入根目录下IMAGES目录下,首页及相关页面放入各自目录下根目录;
6、在根目录下建立一个include目录,将所有页面的共享块做成模块。文件全部由统一后台进行操作管理。
7、页面尽量少用JAVASCRIPT、VBSCRIPT,保持整洁干净,提高访问速度!
8、支持IE,NETSCAPE等浏览器;显示分辨标准是1024*768
9、设计人员注意网站品牌的突出、视觉识别体系。
4.2旅游系统主要模块设计
根据系统功能分析,可以画出系统的功能模块图,从客户界面,管理界面分别对功能模块图加以描述。
管理界面的系统功能模块图如图4-1:

在这里插入图片描述

4.3 数据库设计
“数据库”就是为了实现一定的目的按某种规则组织起来的“数据”的“集合”。它由一个称为数据库管理系统的软件进行管理。数据的存取方式独立于使用它的应用程序。
数据库的主要特征:
数据共享
数据具有最小冗余度
数据的完整性
数据的安全性
数据的独立性
数据库结构的设计是软件开发的首要条件,设计较好、全面的数据库结构,对于软件开发来说是成功的基石,数据库结构设计不全面,会严重影响软件系统的开发利用率与进程。
4.3.1 数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通过系统功能分析,针对一般的旅游信息网,总结出如下的需求信息:
1)用户分为普通用户和管理员用户。
2)普通用户无需要登录就可以查看旅游信息和资讯
3)管理员可进行所有后台操作权限。
关于定单列表与定单详细信息可以这样理解:因为用户一次可以购买多种产品。则对每种产品(即每一款型号的旅游)生成一条定单详细信息记录。然后多个这样的定单详细信息组成一个定单列表。每一个定单列表才与一个用户对应,在发货时以定单列表为单位,也即用户在操作时所看到的“定单”。
经过系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
1)用户信息,包括数据项:帐号,密码,权限,注册时间。
2)新闻,包括数据项:新闻名称,新闻内容,添加时间等。
3)旅游,包括数据项:旅游编号,旅游名称,旅游说明,价格,图片等。
4.3.2 数据库概念结构设计
得到上面数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
设计规划出的实体有:管理员信息实体、注册用户信息实体、旅游实体、定单详细信息实体。
实体之间关系的E-R图如图4-2所示:

在这里插入图片描述

用户信息实体E-R图如图4-3所示:
在这里插入图片描述

旅游线路信息实体ER图如图4-4所示:
在这里插入图片描述

新闻实体ER图如图4-5所示:

在这里插入图片描述

4.3.3 数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。
旅游信息网数据库中各个表的设计结果如表所示。每个表格表示在数据库中的一个表。
表4-1为管理员信息表,存储系统中的管理员信息。
在这里插入图片描述

表4-1 管理员信息表
表4-2为新闻信息表,记录系统中新闻的详细信息。
在这里插入图片描述

表4-2 新闻信息表
表4-3为线路信息表,记录系统中已有线路的信息
在这里插入图片描述

表4-3 线路信息表
表4-4为团订信息表,记录系统中的团订信息。
在这里插入图片描述

表4-4 团订信息表
4.4 系统典型逻辑实现
4.4.1 添加新记录
为实现记录的添加功能,在“类型”列的FooterTemplate里也添加一个地域类型下拉框,在“地域名称”列的FooterTemplate里添加一个文本框,在“编辑”列的FooterTemplate里添加一个添加按钮和取消按钮,并把这两个按钮的CommandNam分别设置为ADD和CANCEL ADD,当单击添加地域按钮时将触发对应的事件,该事件的事件处理程序如下:
//显示GridView控件的页脚,为添加地域做准备
protected void btnAdd_click(object sender,EventArgs e)
{
gvList.ShowFooter=true;
BindData();
}
这样,就可以对刚才添加的下拉框和文本框进行编辑,单击“添加”按钮,用来完成添加地域的功能,或单击“取消”按钮,用来取消地域添加。添加与取消事件都是在GridView控件的RowCommand事件的处理程序中实现:
//GridView控件的RowCommand函数,此处实现了添加了取消添加地域的功能
protected void gvList_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == “ADD”)
{
DropDownList ddlNewType = (DropDownList)gvList.FooterRow.FindControl(“ddlNewType”);
TextBox txtNewArea = (TextBox)gvList.FooterRow.FindControl(“txtNewArea”);
BaseService.GetInstance().InsertArea(ddlNewType.SelectedValue == “0” ? false : true, txtNewArea.Text);
gvList.ShowFooter = false;
BindData();
}
if (e.CommandName == “CANCELADD”)
{
gvList.ShowFooter = false;
BindData();
}
}
当e.CommondName的值是ADD时说明是添加地域,通过FindControl方法获取地域类型和地域名称,通过BaseService的InsertArea方法添加到数据库。InsertArea方法定义如下:
//添加记录
Public void InsertArea(bool TypeId,string AreaName)
{
string sql = “insert area (typeid,areaname)values (@TypeId,@AreaName)”;
Database db=DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(sql);
db.AddInParameter(cmd,”@TypeId”,DbType.Boolean,TypeId);
db.AddInParameter(cmd,”@AreaName”,DbType.String,AreaName);
db.ExecuteNonQuery(cmd);
}
当e.CommondName的值是CANCEL ADD时说明是取消添加地域,将GridView的ShowFooter的属性设置为False,然后绑定数据。
4.4.2 修改数据记录
数据的修改操作也是通过GridView控件来实现的。首先,将GridView控件中的所有列都设置为模板列,然后在“类型”列的编辑模板中添加一个地域类型下拉框,下拉选项为本市和外埠,此项的目的是为了当编辑某一地域时修改地域类型:然后再“地域名称”列的编辑模板中添加一个文本框,此文本框的目的是为了当编辑某一地域时修改地域类型。这样:当我们单击某一记录的编辑按钮时就会触发GridView控件的编辑事件RowEditing,在该方法中编写代码如下:
//将指定的GridView行设置为编辑状态
protected void gvList_RowEditing(object sender, GridViewEditEventArgs e)
{
gvList.EditIndex = e.NewEditIndex;
BindData();
}
对地域类型与地域名称进行修改,要确定修改。可以单击“更新”,否则,单击“取消”以取消编辑。更新将触发GridView控件的RowUpdating事件,在该事件里,对编辑的地域进行了数据库保存工作,具体代码如下:
//编辑指定的地域记录
protected void gvList_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DropDownList ddlType = (DropDownList)gvList.Rows[e.RowIndex].FindControl(“ddlType”);
TextBox txtArea = (TextBox)gvList.Rows[e.RowIndex].FindControl(“txtArea”);
int Id = Convert.ToInt32(gvList.DataKeys[e.RowIndex].Value);
BaseService.GetInstance().UpdateArea(Id, ddlType.SelectedValue == “0” ? false : true, txtArea.Text);
gvList.EditIndex = -1;
BindData();
}
在该函数里通过FindControl方法,查找到我们刚才添加的下拉框与文本框,读取这两个控件的值,并更新此地域记录。地域的数据库更新是通过BaseService的UpdateAreay方法实现的,代码如下:
//更新地域信息
Public void UpdateArea(int Id,bool TypeId,string AreaName)
{
string sql = “update area set typeid=@TypeId,AreaName=@AreaName”
+”where AreaId=@AreaId”;
Database db=DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetSqlStringCommand(sql);
db.AddInParameter(cmd,”@TypeId”,DbType.Boolean,TypeId);
db.AddInParameter(cmd,”@AreaId”,DbType.Int32,Id);
db.AddInParameter(cmd,”@AreaName”,DbType.String,AreaName);
db.ExecuteNonQuery(cmd);
}
取消编辑的方法实现如下:
protected void gvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvList.EditIndex = -1;
BindData();
}
4.4.3 删除记录信息
实现删除记录功能的代码如下:
单击“删除选定”按钮,会删除选定的地域,具体实现代码如下:
//删除指定的地域记录,可多选
protected void btnDelete_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
CheckBox cb = null;
foreach (GridViewRow row in gvList.Rows)
{
cb = (CheckBox)row.FindControl(“CheckThis”);
if (cb.Checked)
{
sb.Append(gvList.DataKeys[row.RowIndex].Value.ToString() + “,”);
}
}
if (sb.Length > 0)
{
sb.Remove(sb.Length - 1, 1);
BaseService.GetInstance().DeleteArea(sb.ToString());
BindData();
}
}
在该函数中,通过遍历GridView控件中的每行,判断该行是否被选中,如果选中就将选中就将选中行的主键值(这里就是地域表的Areald)保存到一个StringBuilder对象中,如果选中了多行,就将主键值以逗号隔开,最后调用BaseService类的DeleteArea()方法删除相应的数据库记录,实现代码如下:
//删除选定的地域
Public void DeleteArea(string Ids)
{
String sq1=”delete area where areaid in (“ + Ids + ”)”;
Database db=DatabaseFactory.CreateDatabase();
DbCommand cmd=db.GetSqlStringCommand(sql);
Db.ExecuteNonQuery(cmd);
}

第五章 旅游信息网的测试与运行

5.1 首页测试
此界面为所有用户的操作主页面,包括非注册用户、注册会员、管理员,都可在此界面进行信息浏览、查询。信息分类清晰,不但有传统的文字信息,还有时下流行的FLASH动画演示。
在这里插入图片描述

图5-1 旅游信息网首页
旅游信息网的主页包含了机票搜索、国内、海外酒店搜索、旅游度假搜索、快捷履行服务。特价酒店展示、低价机票展示、热点旅游度假胜地展示、精选目的地推荐、合作信息、会员注册、登录、中英文网页展示等信息。

5.2 会员注册界面测试
在这里插入图片描述

图5-2 旅游信息网会员注册
会员注册时需填写用户名、密码、真实姓名、性别、电话、身份证、联系地址等信息。用户输入用户名密码、手机号码、电子邮件并且同意服务条款即可进行会员注册,并且发送注册确认邮件到该用户电子邮件进行确认。

5.3线路介绍界面的测试
在这里插入图片描述

图5-3 旅游信息网线路介绍
界面中,除了左侧的常用功能外,右侧以图片链接的形式详细列出旅游信息,其上方有一搜索引擎,可在此中输入全部或部分的关键字进行查询。
旅游线路信息分类管理: 管理员根据实际旅游分类对旅游线路进行分类管理,可进行新增、编辑、删除等操作。
旅游线路信息管理:管理员添加旅游线路信息,如:旅游线路标题、地点、报价、详情、旅游景点介绍、行程安排、重要提示、目的地提示、酒店推荐等相关信息,并可对该信息进行编辑、删除等操作。并可对旅游线路信息进行分类信息检索,方便后台查找旅游信息。
旅游线路信息推荐/置顶/排序管理:后台显示所有旅游线路信息,管理员可以根据检索条件进行旅游线路信息筛选,并可对该信息进行推荐、置顶、排序等操作,方便网站后台对前台展示信息的控制。
5.4 新闻界面的测试
在这里插入图片描述

图5-4 旅游信息网新闻页面
新闻界面可分为两个部分组成:一是新闻列表,一是新闻内容界面。
5.5 管理员登陆界面测试
在这里插入图片描述

图5-5 旅游信息网登录页面
此页面为管理员登陆界面,点击屏幕下方的“登录系统”链接可进入。当拥有合法身份的管理员在输入正确的帐号及密码后,进入后台管理系统。
5.6景点管理界面测试
在这里插入图片描述

图5-6 旅游信息网管理景点页面
此界面的执行结果,是列出景点的信息,及对景点的修改及删除操作权限。网上旅游信息网操作简约,流程清晰。功能齐全,没有冗余,没有遗漏。

总 结

本论文从分析当前旅游业的现状出发,论述了建设一个基于ASP.Net和SQL Server2005的旅游信息网的基本过程。通过该旅游信息网站,游客可以很方便地了解景区景点、旅游线路等详细的信息,同时让游客可以选择自己需要的服务项目和旅游路线。旅行社通过使用本网站,改变了以往以手工方式处理大量游客信息的方式,这样降低了出错率,提高了资源利用率,加强了对旅游信息资源的整合、统一管理,使旅行社更加合理、高效地运转。本系统以ASP.NET动态网页设计、CSS式的应用、静态网页的制作、Photoshop图像处理、JavaScript语言及对网站的总体布局设计为基础,开发并实现了在线报名、线路查询、景点介绍等主要模块的设计。
通过为期近1个月的开发和论文撰写,我学到了很多东西,对动态网站制作的整体架构有深刻的理解,能够更加熟练的运用ASP语言,能够独立对项目进行分析和设计。

致 谢

在本次系统开发和论文撰写过程中,尽管充满了许多困难和艰辛,但在老师的悉心指点和鼓励下,我坚持走到了最后。动态网站的设计技术尽管已经比较普及,但是对于我这样的学生来说,还是充满了挑战。我在学校的学习过程中,积累了很多诸如数据库原理、面向对象编程等专业知识,在这次真强实战的编程中,之前积攒的知识弹药得到了充分的发挥,没有之前的理论积累,这次的实战想必会走更多弯路。所以在开发和论文撰写接近尾声的时候,我想真诚地对中国地质大学远程继续教育学院的老师们表示感谢,是您们把我从一个混迹在软件行业还处在原始梦寐状态的小工进行了脱胎换骨般的提升,我的在校学习是一次从实践到理性认识的过程,之前懵懂、一知半解的很多知识在这里都得到了释疑,真心感谢给我解惑的老师们,谢谢您。

参 考 文 献

[1] (美)佩特科维奇|译者:冯飞、薛莹,《Microsoft SQL Server2005初学者指南》,中文第1版,北京,清华大学出版社,2007年
[2] 黄梯云.计算机基础知识及管理信息系统.北京:中国经济出版社,1989
[3] (美)维埃拉|译者:叶寒、管贤平,《SQL Server2005编程入门经典(第2版)》,第2版,北京,清华大学出版社,2007年
[4] (美)奥蒂|译者:高猛,《Microsoft SQL Server2005s开发指南》,第1版,北京,清华大学出版社 ,2007年
[5] 沛曾 陆慰民 杨志ASP.NET 程序设计教程(6.0版).北京:高等教育出版社,2000.7
[6] 张海藩,《软件工程导论》,2003年,清华大学出版社
[7] 卢毅. ASP.NET数据库设计实例导航.北京:科学出版社,2001
[8] [美] Jeffrey D.Ullman,《Fundamental Course of Database System》,TsingHua Press,2001年2月。
[9] [美]Jeffer R.Shapiro著,周之、黄玫译,《SQL Server 2005参考大全》,清华大学出版社,2006年6月。
[10] 隆华软件工作室 编著,《SQL Server 2005程序设计》,清华大学出版社,2007年2月。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/233940.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode算法题解(单调栈)|LeetCode84. 柱状图中最大的矩形

一、LeetCode84. 柱状图中最大的矩形 题目链接:84. 柱状图中最大的矩形 题目描述: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大…

C++中字符串详解

在C语言中只能通过字符串数组来模拟字符串,没有字符串类型。在C引入了string类来表示字符串类型。从而用它定义字符串。 在C语言中: char str[] "abc"; char str[] {a,b,c,\0}; char* str "abc"; //这三种形式是C语言…

20、XSS——XSS跨站脚本

文章目录 一、XSS漏洞概述1.1 XSS简介 二、XSS漏洞分类2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS 三、XSS payload构造以及变形3.1 XSS payload构造3.2 XSS payload 变形 一、XSS漏洞概述 1.1 XSS简介 XSS被称为跨站脚本攻击(Cross-site scripting)&…

045:Vue读取本地上传JSON文件,导出JSON文件方法

第045个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

计算机毕业设计JAVA+SSM+springboot养老院管理系统

设计了养老院管理系统,该系统包括管理员,医护人员和老人三部分。同时还能为用户提供一个方便实用的养老院管理系统,管理员在使用本系统时,可以通过系统管理员界面管理用户的信息,也可以进行个人中心,医护等…

class065 A星、Floyd、Bellman-Ford与SPFA【算法】

class065 A星、Floyd、Bellman-Ford与SPFA【算法】 2023-12-9 19:27:02 算法讲解065【必备】A星、Floyd、Bellman-Ford与SPFA code1 A*算法模版 // A*算法模版(对数器验证) package class065;import java.util.PriorityQueue;// A*算法模版&#xff…

Mysql8.0实现主从复制

1、什么是主从复制 数据库的主从复制(master-slave replication)是一种数据复制技术,其中一台数据库服务器(主服务器)上的数据变更会复制到另一台或多台数据库服务器(从服务器)上。这种复制可以…

【Copilot】Edge浏览器的copilot消失了怎么办

这种原因,可能是因为你的ip地址的不在这个服务的允许范围内。你需要重新使用之前出现copilot的ip地址,然后退出edge的账号,重新登录一遍,最后重启edge,就能够使得copilot侧边栏重新出现了。

C语言算法与数据结构,旅游景区地图求最短路径

背景: 本次作业要求完成一个编程项目。请虚构一张旅游景区地图,景区地图包括景点(结点)和道路(边):地图上用字母标注出一些点,表示景点(比如,以点 A、B、C、…

线程及实现方式

一、线程 线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务&#x…

漏洞复现-大华dss struts2-045表达式注入漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

EdgeYOLO: anchor-free,边缘部署友好

简体中文 1 Intro 2 Updates 3 Coming Soon 4 Models 5 Quick Start \quad 5.1 setup

Leetcode刷题笔记题解(C++):92. 反转链表 II

思路:获取要反转的区间,拆开之后进行反转再拼接 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* …

我有才专属定制适合个人的知识付费平台,打造个性化品牌与自主管理体验

在当今数字化时代,知识付费平台已经成为人们获取专业知识、提升自身素质的重要渠道。然而,公共知识付费平台虽然内容丰富,但难以满足个人或企业个性化的需求和品牌打造。因此,我们提出了专属定制适合个人的知识付费平台的概念&…

题目:跳石头(蓝桥OJ 364)

题目描述&#xff1a; 解题思路&#xff1a; 注意点&#xff1a;二分需要一些冗余&#xff0c;即遍历的r大小可能比需要建立的数组大。 题解&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5e4 9; using ll long long; int L, n, m; int a[N…

55.手写实现grpc连接池以及gin和grpc交互

文章目录 一、简介前置说明 二、敏感词过滤服务1、定义sensitive.proto文件2、protoc生成pb.go文件3、sensitive服务端实现 三、关键词匹配服务1、编写keywords.proto文件2、生成pb.go文件3、keywords服务端实现 四、gin web 路由服务1、新建grpcpool服务作为gin web服务2、根据…

202301209将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制

202301209将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制 2023/12/9 22:07 应该也可以适用于RK3399的Android12系统 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/default…

AtCoder Beginner Contest 328

A - Not Too Hard (atcoder.jp) AC代码: #include<bits/stdc.h> #define endl \n //#define int long long using namespace std; const int N10; int s[N]; int n,x; void solve() {cin>>n>>x;for(int i1;i<n;i) cin>>s[i];int ans0;for(int i1;…

【现代信息检索】国科大何苯老师现代信息检索课程作业 —— 第一次作业

1 考虑如下几篇文档&#xff1a; 文档1&#xff1a;new home sales top forecasts 文档2&#xff1a;home prices rise in june 文档3&#xff1a;increase in home sales in june 文档4&#xff1a;july new home sales rise a. 画出文档集对应的词项-文档矩阵。 文档 1文…

java--DateTimeFormatter、Period、Duration

1.DateTimeFormatter 2.LocalDateTime提供的格式化、解析时间的方法 3.Period(一段时期) 可以用于计算两个LocalDate对象相差的年数、月数、天数。 4.Duration(持续时间) 可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数&#xff1b;支持LocalTime、LocalDa…
最新文章