ASP论坛的毕业设计.doc 39页

  • 1.42 MB
  • 2022-04-22 13:54:43 发布

ASP论坛的毕业设计.doc

  • 39页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'开封大学软件学院软件技术专业毕业论文2012.04.12ASP论坛的毕业设计目录论文摘要1ASP.NET论坛的设计论文2一、BBS介绍2二、使用工具及相关知识3(一)SQLServer2008概述3(二)ADO.NET概述3(三)ASP.NET简介4三、系统简单分析4(一)系统可行性分析4(二)系统功能的需求分析6(三)系统简要用例图分析8(四)运行环境9四、系统总体设计10(一)系统的设计目标10(二)系统功能结构11五、数据库设计12(一)数据库和设计概述12(二)概念模型设计(E-R图)13(三)数据库逻辑设计14六、系统的详细设计与实现17(一)前台设计与实现17(二)论坛后台页面设计如实现28结论36致谢37参考文献3838 开封大学软件学院软件技术专业毕业论文2012.04.12论文摘要论坛系统BBS(BullitinBoardSystem)是互联网上一种人与人之间交互的必备工具,特别是做网站的必备,网上论坛提供一个信息交流的空间。人们可以通过论坛一起讨论自己喜欢的话题,提出自己喜欢的话题或者是回答一些问题。用户可以在论坛上发表对某个问题的看法阐述自己的观点,给别人讨论对某个问题的看法,在Internet的发展中论坛的作用是无法代替的。然而开发论坛的应用程序必须了解两部分的内容,即前台开发工具和后台的数据库。本文利用ASP.NET技术进行前台界面设计,利用SQLServer2008设计的后台数据库以及利用ADO.NET数据库访问技术实现对数据库的各种管理操作,实现BBS的各种基本功能。主要分析了BBS的主要组成情况,包括BBS的设计目标,框架结构,数据流程和BBS的主要特点等,重点介绍了前台功能模块的详细思路和实现方法,以及对后台数据库关键技术和部分源代码的详细说明。关键词:BBSASP.NETADO.NETSQL38 开封大学软件学院软件技术专业毕业论文2012.04.12ASP.NET论坛的设计论文论坛系统服务已经是互联网站一种极为常见的互动交流服务。论坛可以向网友提供开放性的分类专题讨论区服务,可以在此发表自己的某些观感、交流某些技术、经验乃至人生的感悟和忧欢,亦可以作为网友之间的交流渠道。通过论坛的方式,增强人与人、个人与团体、团体与团体之间的交流联系,在Internet上实习信息的传递,提高办事效率。因此论坛建设在Internet应用上的地位显而易见,它已成为现代人沟通和获取信息的重要组成部分,从而倍受人们的重视。一、BBS介绍BBS起源于二十世纪80年代初,最早的BBS只提供消息投递和阅读功能,使用者通常是些计算机爱好者。随后,系统允许会员之间分享软件、文件,进行实时网络对话、信件传输等。为了提供更好的服务,一些站点实行收费政策,但目前Internet上还是有无数免费BBS站点。一般BBS站点地址以域名形式出现,这些站点可通过远程登录进行连接,更多的站点采用WWW的形式供会员使用。BBS也被称为异步会议系统、布告板,是网络上除了E-mail之外,最为普遍的在线讨论系统,它来源于早期Internet发展的BBS系统(BulletinBoardSystem),随着Internet的发展,逐步演变成现在的形式——基于Web的BBS系统。在本文中,主要介绍使用ASP.NET技术来实现网络论坛建设。通过基于Internet互联网的动态WEB数据技术,可以解决远程的数据传输与读取,远程的客户终端(Client)可以通过WEB页面提交请求,查询远端的数据服务器上的信息,以实现信息的共享,同时利用Internet技术可以降低软件的开发和部署成本,只要在服务器上安装WEB应用就可以使每个客户端都能浏览使用。目前,通过BBS系统可随时获取各种最新的信息;也可以通过BBS系统来和别人讨论计算机软件、硬件、硬件、Internet、多媒体、程序设计及人文、地理等等各种有趣的话题;还可以利用BBS系统来发布一些“问题”、“廉价转让”、“招聘启示”等问题;更可以召集亲朋友好友到聊天室内高谈论阔……38 开封大学软件学院软件技术专业毕业论文2012.04.12这个精彩的天地就在你我的身旁,只要您拥有一台可以访问互联网的计算机,就可以通过这个交流平台,来享受它的种种服务。一、使用工具及相关知识(一)SQLServer2008概述SQLServer2008出现在微软数据平台愿景上是因为它使得公司可以运行他们最关键任务的应用程序,同时降低了管理数据基础设施和发送观察和信息给所有用户的成本。这个平台有以下特点:1.可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。2.高效的——SQLServer2008降低了管理系统、.NET架构和VisualStudio的时间和成本,使得开发人员可以开发强大的下一代数据库应用程序。3.智能的——商业智能(BI)继续作为大多数公司投资的关键领域和对于公司所有层面的用户来说的一个无价的信息源。(二)ADO.NET概述ADO.NET的名称起源于ADO(ActiveXDataObjects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据.之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在.NET编程环境中优先使用的数据访问接口。它提供了平台互用性和可伸缩的数据访问。ADO.NET增强了对非连接编程模式的支持,并支持RICHXML。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO.NET组件,它可以是基于一个MicrosoftVisualStudio的解决方案,也可以是任何运行在其它平台上的任何应用程序。ADO.NET是与数据源交互的.NET技术。有许多的DataProviders,它将允许与不同的数据源交流――取决于它们所使用的协议或者数据库。然而无论使用什么样的Data38 开封大学软件学院软件技术专业毕业论文2012.04.12Provider,你将使用相似的对象与数据源进行交互。SqlConnection对象管理与数据源的连接。SqlCommand对象允许你与数据源交流并发送命令给它。为了对进行快速的只“向前”地读取数据,使用SqlDataReader。如果想使用断开数据,使用DataSet并实现能进行读取或者写入数据源的SqlDataAdapter。(一)ASP.NET简介ASP.NET的前身ASP技术,是在IIS2.0上首次推出(WindowsNT3.51),当时与ADO1.0一起推出,在IIS3.0(WindowsNT4.0)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了VisualInterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展WindowsNT4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。ASP.NET具有一下几个重要特点特点:1.强大性和适应性——ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。2.简单性和易学性——ASP.NET使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。3.高效可管理性——ASP.NET使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单,因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。一、系统简单分析(一)系统可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定是否能够解释决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上就是要进行一次大大的压缩简化了的系统分析和设计的过程,也就是在较高层次上以抽象的方式进行的系统分析和设计的过程。38 开封大学软件学院软件技术专业毕业论文2012.04.12系统的可行性分析主要包括技术上的可行性、经济上的可行性、操作上的可行性、法律上的可行性和开发环境上的可行性。本系统的可行性分析如下:在技术方面:随着国内外软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。从整个系统的技术构成上来看,它属于一个数据库应用类的系统。其基本操作就是对存在数据库中的数据进行添加、删除、查找、编辑等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。因此从技术方面来看考虑本系统的可行性是可行的。在经济方面:现在越来越多的人都是通过网络做许多事情,这个BBS系统易于操作,虽然对硬件要求比较高但是其安全性和管理性比较好,实用性比较好,相信经济效益也会比较高。因此从经济方面考虑开发此系统是可行的。在操作方面:随着社会的发展,全民素质的提高,不论是对于电脑系统的基本操作还是对电脑的基本维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑的鼓掌问题,且系统使用简单明了,因此从操作方面来看此系统是可行的。在法律方面:此系统没有侵犯他人的个人合法利益,系统所涉及的条款与国家的现行法律没有抵触,不损坏国家、集体、个人的任何利益,所以在法律上是完全可行的。开发环境可行性:开发此BBS系统需要硬件环境要求操作系统为WindowsXPProfessional以上系统版本,需要安装Internet信息服务,还有ASP.NET环境。目前看操作系统和软件都不是问题,系统硬件也可以满足,所以从开发环境上来说是可行的。软件需求分析工作是软件生存周期中的重要的一步,也是决定性的一步。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。因此,在软件开发前应该做好对软件的需求分析。(一)系统功能的需求分析1.基本功能38 开封大学软件学院软件技术专业毕业论文2012.04.12论坛的基本功能是构成论坛系统的必要功能,包括如下基本功能。(1)发帖。论坛最初是为了互相讨论话题而诞生的,发表帖子就是表达自己的看法,与他人进行讨论,因此发帖是论坛首要的功能。(2)浏览帖子。发表帖子,就是供他人浏览查看,与他人分享自己的想法和经验。(3)回帖。浏览了他人发帖子,想要发表自己的想法,参与讨论,就可以回复这个帖子。其实,发帖→浏览帖子→回帖三大功能周而复始的循环进行,就构成了论坛,每个参与论坛的人,主要目的就是发帖,查看自己已经发表的帖子,针对自己感兴趣的帖子进行回复,参与讨论。三大基本功能的相互关系如图1所示。发帖帖子列回帖浏览帖图1论坛基本功能关系图1.扩展功能除以上基本功能外,其它的论坛功能都是扩展功能,包括如下功能:(1)注册登录。方便经常发帖的人不需要重复填写个人信息。(2)分板块浏览帖子。有利于具有相同兴趣的用户相互讨论,不易跑题。(3)编辑帖子。提供给用户更新自己发言的选择。(4)删除帖子。如果用户发飙了不符合论坛规则的帖子,组需要管理员删除这些帖子。38 开封大学软件学院软件技术专业毕业论文2012.04.12(1)转移帖子。论坛划分了板块,如果帖子内容不属于所在板块的关注话题,那么管理员可以选择将此帖移动到所属话题的板块中去。(2)置顶帖子。管理员如果需要强调某些帖子的重要,有必看性,可以将这些帖子置顶。(3)指定精华帖。如果管理员认为某帖子内容很好,可以坐上标记,推荐给用户看,用户也可以只看精华帖。(4)搜索帖子。方便用户查找自己需要的内容。(5)管理板块。论坛板块需要先创建才能被使用,管理还可以删除板块的相关信息。(6)设置参数。论坛一般有一些初始化信息,比如论坛名称,每页显示帖子的数量等参数信息。(7)管理用户。管理员可以对论坛注册用户进行管理,直接添加用户,赋予相关权限,也可以修改已注册用户的权限,对于违规用户可以删除。删除作者用户注册登录转移管理板块编辑帖子板块图2论坛扩展功能图论坛扩展功能图,如图2所示。38 开封大学软件学院软件技术专业毕业论文2012.04.12(一)系统简要用例图分析对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等。系统的用例图如下图3所示:注册用户临时用户浏览帖子发表帖子回复帖子修改资料用户搜索管理员用户管理帖子管理论坛信息管理图3系统用例图(二)运行环境运行环境配置从硬件和软件两方面描述,所列出的都是系统所能正常运行的最低限度。而更高的硬件配置和软件环境将会带来更快的运行速度以及更稳定的运行效果。硬件要求:38 开封大学软件学院软件技术专业毕业论文2012.04.12CPU:IntelPentium600MHz以上。内存:128M以上。磁盘安装空间:3.2GB(完全安装,包括.NETFrameworks以及.NETIDE全部开发工具和MSDN)。显示:800*600,256色。软件需求:MicrosoftWindows2000+SP1。MicrosoftInternetExplorer5.5。一、系统总体设计(一)系统的设计目标对于典型的数据库管理系统,尤其是对像论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应满足以下几个目标:1.采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。2.全面展示系统内所有分类的帖子,并进行分页显示。3.为用户提供一个方便、快捷的主题信息查看功能。4.实现在线发表帖子。5.提供登录模块,主要用开管理员登录系统和发表帖子时留下发表者的信息。6.用户随时都可以查看自己发表的帖子。7.对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。38 开封大学软件学院软件技术专业毕业论文2012.04.128.系统最大限度地实现了易维护性和易操作性。9.系统运行稳定安全可靠。(一)系统功能结构1.前台功能结构查看版面下根贴查看精华帖子搜索根贴查看根贴内容用户登录用户注册用户注销发表帖子回复帖子查看自己发表的帖子BBS论坛前台用户访问论坛首页面后,可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根贴信息、用户注册等功能。用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子、查看自己发表的帖子等操作。前台功能结构图如图4所示。图4前台功能模块图2.后台功能结构类别管理版面管理用户管理退出管理BBS论坛后台若用户的权限为管理员,则可进入后台,可进行论坛类别的管理、版面管理和用户管理的操作。后台功能结构图如下图5所示。38 开封大学软件学院软件技术专业毕业论文2012.04.12图5后台功能模块图1.系统流程图类别管理版面管理用户管理是否登录是否成功进入后台后台首页用户登录管理员(1)系统后台流程图如下图6所示。图6后台功能流程图图7前台台功能流程图图(2)系统后台流程图如下图7所示。查看精华帖子搜索根贴查看版面下根贴查看根贴内容发表帖子回复帖子提前帖子删除帖子置顶帖子置为精华贴删除回复帖查看自己发表的根贴用户注册是否管理员、版主、帖子发表者是否登录是否登录提示无权操作游客访问是是否是否否前台首页用户登录成功是一、数据库设计38 开封大学软件学院软件技术专业毕业论文2012.04.12数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。(一)数据库和设计概述1.数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。2.数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。3.数据库设计是信息系统开发和建设的重要组成部分。(一)概念模型设计(E-R图)数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。E-R模型的基本概念ER图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。ER图的理念是:项目所有参与者能理解ER图。ER图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用于描述实体,关系用于实体之间(1)实体:现实世界中的事物;(2)属性:事物的特性;(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。38 开封大学软件学院软件技术专业毕业论文2012.04.12用户M发表N帖子详细资料11N管理管理员1N添加1修改论坛图8系统E-R图本系统的E-R图如下图8所示:(一)数据库逻辑设计图9BBS数据库所包含的数据表结构图BlockBig(论坛区块信息表)BlockSmall(论坛版块信息表)Message(消息信息表)Popedom(论坛类别信息表)Post(论坛帖子信息表)PostBack(帖子回复信息表)PostType(帖子类型信息表)Users(用户信息表)BBS根据数据库概念设计,可以创建与实体对应的数据表。本系统中所包含的数据表的结构图如图9所示。38 开封大学软件学院软件技术专业毕业论文2012.04.12本系统包括8个数据表,下面分别是这些表的结构。1.BlockBig(论坛区块信息表),该表结构如下表表1所示。表1BlockBig(论坛区块信息表)列名数据类型是否主键允许空值描述bigIdint是否ID自动生成bigNamevarcher否是区的名称bigDescriptionvarcher否是对区的描述BigAdminvarcher否是区管理员bigAddtimedatetime否是区添加时间2.BlockSmall(论坛版块信息表),该表结构如下表表2所示。表2BlockSmall(论坛版块信息表)列名数据类型是否主键允许空值描述small_Idint是否表Id自动生成small_Namevarchar否是板块名称small_Desciptionvarchar否是板块描述small_ImgUrlvarchar否是板块图片small_Adminint否是版主small_BigIdint否是所属区号small_Adddatedatetime否是加入时间small_PostCountint否是帖子数量small_PostBackCountint否是回复帖子数量3.Message(消息信息表),该表结构如下表表3所示。表3Message(消息信息表)列名数据类型是否主键允许空值描述message_idint是否表Id自动生成38 开封大学软件学院软件技术专业毕业论文2012.04.12message_titlevarcher否是消息题目message_contentvarcher否是消息内容message_senderint否是消息发送者message_toUserint否是消息接收者message_IsReadint否是是否已读message_Adddatedatetime否是消息时间1.Popedom(论坛类别信息表),该表结构如下表表4所示。表4Popedom(论坛类别信息表)列名数据类型是否主键允许空值描述popedom_idint是否表Id自动生成popedom_Namevarchar否是论坛类别名称2.Post(论坛帖子信息表),该表结构如下表表5所示。表5Post(论坛帖子信息表)列名数据类型是否主键允许空值描述post_idint是否表Id自动生成post_Titlevarchar否是帖子题目post_Contentvarchar否是帖子内容post_Senderint否是帖子发表人post_SendTimedatetime否是帖子发送时间post_SmallIdint否是所属版块编号post_TypeIdint否是帖子类型标号post_BrowseCountint否是帖子浏览次数post_BackCountint否是帖子回复次数3.PostBack(帖子回复信息表),该表结构如下表表6所示。表6PostBack(帖子回复信息表)列名数据类型是否主键允许空值描述Postback_Idint是否表Id自动生成38 开封大学软件学院软件技术专业毕业论文2012.04.12Postback_contentvarchar否是帖子回复内容Postback_Senderint否是帖子回复人Postback_SendTimedatetime否是帖子回复时间Postback_PostIdint否是帖子标号1.PostType(帖子类型信息表),该表结构如下表表7所示。表7PostType(帖子类型信息表)列名数据类型是否主键允许空值描述PostType_Idint是否表Id自动生成PostType_Namevarchar否是帖子类型名称PostType_BlockSmallIdint否是所属版块标号PostType_Adddatedatetime否是帖子类型创建时间2.Users(用户信息表),该表结构如下表表8所示。表8Users(用户信息表)列名数据类型是否主键允许空值描述UserIdint是否表Id自动生成UserNamevarchar否是用户姓名UserPwdvarchar否是用户密码UserEmailvarchar否是用户EmailUserPicvarchar否是用户照片UserQxint否是用户权限设置UserOnlineint否是是否在线UserIpvarchar否是用户ipUserLoginDatedatetime否是用户注册时间IsAdminint否是是否管理员一、系统的详细设计与实现(一)前台设计与实现38 开封大学软件学院软件技术专业毕业论文2012.04.12由于前台功能模块较多,而各模块的实现过程都是类似的,所以对于系统前台,现在只介绍系统重点设计。图10Asp_netBBS论坛首页1.论坛系统前台首页页面运行结果如下图所示。该页面为论坛首页页面,当用户进入本系统时会自动进入本页面。用户可以自行选择自己想进的版面。此BBS设计有母版页存在,故论坛首页实现代码如下:38 开封大学软件学院软件技术专业毕业论文2012.04.12<%#Eval("bigName")%>区长:">创建日期:">">"><%#Eval("bigDescription")%>图11Asp_netBBS论坛登录页面1.该BBS论坛登录页面如下。38 开封大学软件学院软件技术专业毕业论文2012.04.12该页面是用户登录页面,输入正确的用户名和密码按登录按钮则进入登录后页面,按重置按钮则清空文本框。若用户未注册按注册按钮进入注册页面。其实现代码如下:………publicpartialclasslogin:System.Web.UI.Page{//获取数据库连接字符串DataHelperhelper=newDataHelper();protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidUser_login_Click(objectsender,EventArgse){StringName=UserName.Text;stringPwd=User_pwd.Text;Stringuser_ip=Request.UserHostAddress;//获取用户IP地址信息if(Name==""||Pwd==""){Stringalerts="用户名或密码不能为空!";Response.Write("");}else{VldUserLogin(Name,Pwd,user_ip);}}publicvoidVldUserLogin(stringstrUserName,stringstrPassWord,stringip)//验证并修改个别信息{stringstrUserId=null;stringisadmin=null;intUserQx=0;Stringconnstring=helper.Getstr();StringstrSql="SELECTUserIdFROMUsersWHEREUserName=""+strUserName+""andUserPwd=""+strPassWord+""";//根据用户名和密码来查询用户的IDStringstrSql2="SELECTIsAdminFROMUsersWHEREUserName=""+strUserName+""andUserPwd=""+strPassWord+""";//根据用户名和密码来查询用户是否为管理的的标志StringstrSql3="SELECTUserQxFROMUsersWHEREUserName=""+strUserName+""andUserPwd=""+strPassWord+""";//查询用户的权限stringstrSql4="updateUserssetUserOnline=""+1+"",UserIp=""+ip+""WHERE38 开封大学软件学院软件技术专业毕业论文2012.04.12UserName=""+strUserName+""andUserPwd=""+strPassWord+""";SqlConnectionconn=newSqlConnection(connstring);SqlCommandcmd=newSqlCommand();cmd.Connection=conn;//设置连接SqlDataReaderreader;try{conn.Open();cmd.CommandText=strSql;reader=cmd.ExecuteReader();if(reader.Read()){strUserId=reader["UserId"].ToString();//获取编号UserIdreader.Close();if(strUserId.Equals("")){Stringalerts="该用户不存在!";Response.Write("");}else{cmd.CommandText=strSql2;reader=cmd.ExecuteReader();if(reader.Read()){isadmin=reader["IsAdmin"].ToString();//获取是否是管理员reader.Close();}cmd.CommandText=strSql3;reader=cmd.ExecuteReader();if(reader.Read()){UserQx=int.Parse(reader["UserQx"].ToString());//获取权限reader.Close();}cmd.CommandText=strSql4;intresult=cmd.ExecuteNonQuery();//修改部分信息Session["user_qx"]=UserQx;//往Session里赋值Session["user_id"]=strUserId;Session["user_name"]=strUserName;//是否是管理员,用于前台主框架是否显示管理Session["IsAdmin"]=isadmin;Response.Redirect("android_index.aspx");//成功跳转38 开封大学软件学院软件技术专业毕业论文2012.04.12}}}catch(Exceptionex){Response.Write("意外关闭");conn.Close();}finally{conn.Close();}}}图12Asp_netBBS论坛注册页面1.该论坛注册页面如下图所示:该页面为用户注册页面,用户按要求填完后可进行注册,若用户想添加头像则可以输入头像网络地址或头像本地所在位置,进行头像上传。若点击重置则清空所有文本框内容,进行重新输入。38 开封大学软件学院软件技术专业毕业论文2012.04.12其页面实现代码如下所示:……publicpartialclassJion:System.Web.UI.Page{//获取数据库连接字符串DataHelperhelper=newDataHelper();privatestringuser_Name1,pwd1,user_email1,ip,pic;intid=0;publicvoidAdd_user(){stringstrconnection=helper.Getstr();stringselectSQL="selectmax(UserId)asMaxIdfromUsers";SqlConnectionconn=newSqlConnection(strconnection);SqlCommandcmd=newSqlCommand(selectSQL,conn);SqlDataReaderreader;try{conn.Open();reader=cmd.ExecuteReader();if(reader.Read()){id=int.Parse(reader["MaxId"].ToString())+1;//取标号最大值Item();Response.Redirect("login.aspx");}reader.Close();}catch(Exceptionex){conn.Close();}finally{conn.Close();}conn.Close();}publicvoidItem()//插入元素{stringstrconnection=helper.Getstr();user_Name1=user_name.Text;38 开封大学软件学院软件技术专业毕业论文2012.04.12pwd1=pwd.Text;pic=UpImg1.GetFilePath;user_email1=user_email.Text;Stringinsert="insertintoUsers(UserId,UserName,UserPwd,UserEmail,UserPic)values(""+id+"",""+user_Name1+"",""+pwd1+"",""+user_email1+"",""+pic+"")";SqlConnectionconn=newSqlConnection(strconnection);try{conn.Open();SqlCommandcmd=newSqlCommand(insert,conn);intresult=cmd.ExecuteNonQuery();}catch(Exceptionex){conn.Close();}finally{conn.Close();}conn.Close();}protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidButton2_Click(objectsender,EventArgse)//注册按钮触发事件{if((user_name.Text=="")||(pwd.Text==""))//判断用户名和密码是否为空{stringalerts="用户名和密码不能为空!";Response.Write("");}elseif(pwd.Text!=rpwd.Text){stringalerts="两次输入的密码不一致!";Response.Write("");}else{Add_user();}}38 开封大学软件学院软件技术专业毕业论文2012.04.12protectedvoidButton1_Click(objectsender,EventArgse){//检测该用户是否已经存在stringsql="selectUserIdfromUserswhereUserName=""+user_name.Text+""";stringstrconnection=helper.Getstr();SqlConnectionconn=newSqlConnection(strconnection);SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderreader;try{conn.Open();reader=cmd.ExecuteReader();if(reader.Read()){reader.Close();Response.Write("");}else{Response.Write("");}}catch(Exceptionex){conn.Close();}finally{conn.Close();}}}38 开封大学软件学院软件技术专业毕业论文2012.04.12图13Asp_netBBS论坛发帖页面1.该论坛发帖页面如下图所示。该页面为用户发表帖子页面,若用户未登录则自动跳转到用户登录界面,提示用户登录,若用户已登录,则可以进行发帖,按重置按钮后则清空所有文本框。该论坛发帖页面后台实现代码如下所示:……publicpartialclassSentPost:System.Web.UI.Page{//获取数据库连接字符串DataHelperhelper=newDataHelper();protectedvoidPage_Load(objectsender,EventArgse){//验证是否有用户登录if(Session["user_id"]==null){Response.Redirect("login.aspx");}}//发表提交按钮事件38 开封大学软件学院软件技术专业毕业论文2012.04.12protectedvoidButton1_Click(objectsender,EventArgse){//获取表单信息intPostType=int.Parse(posttype_ddl.SelectedValue);stringstrTitle=txt_title.Text;intUserId=int.Parse(Session["user_id"].ToString());//内容stringstrContent=nr.Text;intPostSmall_Id=int.Parse(Request.QueryString["Small_Id"]);//添加帖子表AddPost(strTitle,strContent,UserId,PostType,PostSmall_Id);}publicvoidAddPost(stringstrTitle,stringstrContent,intpost_senderId,intTypeId,intPostSmallId){intid=0;stringstrconnection=helper.Getstr();stringselectSQL="selectmax(post_id)asMaxIdfromPost";SqlConnectionconn=newSqlConnection(strconnection);SqlCommandcmd=newSqlCommand();//5_1_a_s_p_xcmd.Connection=conn;cmd.CommandText=selectSQL;SqlDataReaderreader;try{conn.Open();reader=cmd.ExecuteReader();if(reader.Read()){id=int.Parse(reader["MaxId"].ToString())+1;//取标号最大值reader.Close();if(id>0){stringinsertSQL="insertintoPost(post_id,post_title,post_Content,post_Sender,post_SmallId,post_TypeId)values(""+id+"",""+strTitle+"",""+strContent+"",""+post_senderId+"",""+PostSmallId+"",""38 开封大学软件学院软件技术专业毕业论文2012.04.12+TypeId+"")";cmd.CommandText=insertSQL;inta=cmd.ExecuteNonQuery();if(a>0){Response.Redirect("Post_List.aspx?small_id="+PostSmallId);}}}}catch(Exceptionex){conn.Close();}finally{conn.Close();}conn.Close();}}(一)论坛后台页面设计如实现1.论坛后台用户管理界面设计与实现38 开封大学软件学院软件技术专业毕业论文2012.04.12图14Asp_netBBS论坛用户管理界面论坛页面设计如下图所示:该页面为管理员用户管理页面,管理员登录后可以根据其界面提示,进行论坛管理,按退出按钮后则返回论坛首页。其后台实现代码如下:……publicpartialclassmassege_massage_user:System.Web.UI.Page{//获取数据库连接字符串DataHelperhelper=newDataHelper();protectedvoidPage_Load(objectsender,EventArgse){//登陆后授权变动的区域均隐藏bk_txt.Visible=false;bd_ddl.Visible=false;}//权限下拉列表的触发事件protectedvoidUser_QX_SelectedIndexChanged(objectsender,EventArgse){//获取下拉列表中的值intQX=int.Parse(User_QX.SelectedValue);//若为3,即选择版主38 开封大学软件学院软件技术专业毕业论文2012.04.12if(QX==3){bk_txt.Visible=true;bk_txt.Text="板块";bd_ddl.Visible=true;//变动的下拉列表内显示板块类别信息bd_ddl.DataSourceID="SqlData_small";bd_ddl.DataTextField="small_Name";bd_ddl.DataValueField="small_Id";}//若为4,即选择区长if(QX==4){bk_txt.Visible=true;bk_txt.Text="区块";bd_ddl.Visible=true;//变动的下拉列表内显示板块类别信息bd_ddl.DataSourceID="SqlData_big";bd_ddl.DataTextField="bigName";bd_ddl.DataValueField="bigId";}}//触发授权按钮protectedvoidGrant_Click(objectsender,EventArgse){StringconnStr=helper.Getstr();SqlConnectioncon=newSqlConnection(connStr);SqlCommandcmd=newSqlCommand();cmd.Connection=con;SqlDataReaderreader;try{con.Open();if(int.Parse(user_id.Text)>0){stringUser_id=user_id.Text;intqx=int.Parse(User_QX.SelectedValue);if(User_id==""){stringmessage="请输入会员号";Response.Write("alert(""+message+"");");38 开封大学软件学院软件技术专业毕业论文2012.04.12}else{stringsql1="select*fromUserswhereUserId=""+int.Parse(User_id)+""";cmd.CommandText=sql1;reader=cmd.ExecuteReader();if(reader.Read()){stringsql2="updateUserssetUserQx="+qx+"whereUserId="+int.Parse(User_id);//修改小版块的版主reader.Close();if(qx==3){stringsmall_admin=User_id;stringsql3="updateBlockSmallsetsmall_Admin="+small_admin+"wheresmall_Id="+int.Parse(bd_ddl.SelectedValue);cmd.CommandText=sql3;inta=cmd.ExecuteNonQuery();}else{//修改区的区长if(qx==4){stringbig_admin=User_id;stringsql4="updateBlockBigsetbigAdmin="+big_admin+"wherebigId="+int.Parse(bd_ddl.SelectedValue);cmd.CommandText=sql4;intb=cmd.ExecuteNonQuery();}}cmd.CommandText=sql2;//修改用户的权限intc=cmd.ExecuteNonQuery();if(c>0){stringmessages1="授权成功!";Response.Write("alert(""+messages1+"");");Response.Redirect("~/massege/massege_user.aspx");}38 开封大学软件学院软件技术专业毕业论文2012.04.12else{stringmessages2="授权失败!";Response.Write("alert(""+messages2+"");");}}}}else{stringmessages3="输入的格式错误!";Response.Write("alert(""+messages3+"");");}}catch(Exceptionex){Response.Write("出错关闭");con.Close();}finally{Response.Write("最后关闭");con.Close();}}}1.管理员添加论坛版块设计实现38 开封大学软件学院软件技术专业毕业论文2012.04.12图15Asp_netBBS论坛添加论坛版块页面添加论坛版块设计页面如下图所示:该页面为管理员添加论坛板块页面,管理员可在此页面添加论坛版块,按重置按钮后则是清空所有文本框。该论坛页面后台实现代码如下所示:……publicpartialclassmassege_massage_user:System.Web.UI.Page{//获取数据库连接字符串DataHelperhelper=newDataHelper();protectedvoidPage_Load(objectsender,EventArgse){//登陆后授权变动的区域均隐藏bk_txt.Visible=false;bd_ddl.Visible=false;38 开封大学软件学院软件技术专业毕业论文2012.04.12}//权限下拉列表的触发事件protectedvoidUser_QX_SelectedIndexChanged(objectsender,EventArgse){//获取下拉列表中的值intQX=int.Parse(User_QX.SelectedValue);//若为3,即选择版主if(QX==3){bk_txt.Visible=true;bk_txt.Text="板块";bd_ddl.Visible=true;//变动的下拉列表内显示板块类别信息bd_ddl.DataSourceID="SqlData_small";bd_ddl.DataTextField="small_Name";bd_ddl.DataValueField="small_Id";}//若为4,即选择区长if(QX==4){bk_txt.Visible=true;bk_txt.Text="区块";bd_ddl.Visible=true;//变动的下拉列表内显示板块类别信息bd_ddl.DataSourceID="SqlData_big";bd_ddl.DataTextField="bigName";bd_ddl.DataValueField="bigId";}}//触发授权按钮protectedvoidGrant_Click(objectsender,EventArgse){StringconnStr=helper.Getstr();SqlConnectioncon=newSqlConnection(connStr);SqlCommandcmd=newSqlCommand();cmd.Connection=con;SqlDataReaderreader;try{con.Open();if(int.Parse(user_id.Text)>0){stringUser_id=user_id.Text;38 开封大学软件学院软件技术专业毕业论文2012.04.12intqx=int.Parse(User_QX.SelectedValue);if(User_id==""){stringmessage="请输入会员号";Response.Write("alert(""+message+"");");}else{stringsql1="select*fromUserswhereUserId=""+int.Parse(User_id)+""";cmd.CommandText=sql1;reader=cmd.ExecuteReader();if(reader.Read()){stringsql2="updateUserssetUserQx="+qx+"whereUserId="+int.Parse(User_id);//修改小版块的版主reader.Close();if(qx==3){stringsmall_admin=User_id;stringsql3="updateBlockSmallsetsmall_Admin="+small_admin+"wheresmall_Id="+int.Parse(bd_ddl.SelectedValue);cmd.CommandText=sql3;inta=cmd.ExecuteNonQuery();}else{//修改区的区长if(qx==4){stringbig_admin=User_id;stringsql4="updateBlockBigsetbigAdmin="+big_admin+"wherebigId="+int.Parse(bd_ddl.SelectedValue);cmd.CommandText=sql4;intb=cmd.ExecuteNonQuery();}}cmd.CommandText=sql2;//修改用户的权限intc=cmd.ExecuteNonQuery();if(c>0){stringmessages1="授权成功!";38 开封大学软件学院软件技术专业毕业论文2012.04.12Response.Write("alert(""+messages1+"");");Response.Redirect("~/massege/massege_user.aspx");}else{stringmessages2="授权失败!";Response.Write("alert(""+messages2+"");");}}}}else{stringmessages3="输入的格式错误!";Response.Write("alert(""+messages3+"");");}}catch(Exceptionex){Response.Write("出错关闭");con.Close();}finally{Response.Write("最后关闭");con.Close();}}}结论我所选论文题目是“ASP.NET论坛系统”。在老师辛勤指导的基础上,经过自己不断的努力,和同学们的帮助,尽管辛苦,最终“ASP.NET论坛系统”38 开封大学软件学院软件技术专业毕业论文2012.04.12毕业设计还是按时完成了。经过查看大量的资料,认真对网站进行规划和几个月来辛勤的创作,终于完成了BBS论坛的开发。开发此BBS论坛的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。因此,本论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。它具备以下功能:显示各论坛类别及版面、查看版面下所有根帖、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理、用户管理和用户注册。在论坛系统的整个设计过程中,需要注意的是力求界面友好、简洁,易于操作。代码部分尽量避免逻辑错误,算法设计简单合理,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读;力求对数据库操作的安全与稳定,尽量避免数据库操作异常,并要保证查询的快速无误。保证程序的逻辑结构,编程时注意多使用通用方法(函数和过程)。当然,由于我的专业知识水平有限以及时间的限制,在系统设计过程中没有全面做好切合实际的需求分析,所以在开发过程中遇到了一些棘手的问题。现在开发出来的系统还存在部分不足的地方。系统版面设计不够人性化,系统对数据库的操作还不够稳定,程序代码中还存在一些Bug,这些问题在以后的开发过程中还需要逐步完善。这次的毕业设计让我知道了自己很多的不足,还需要自己加倍努力。致谢38 开封大学软件学院软件技术专业毕业论文2012.04.12经过几个月的忙碌和工作,本次毕业设计已经接近尾声,作为一个专科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。在这里首先要感谢我的导师李响老师。李老师平日里工作繁多,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计等整个过程中都给予了我悉心的指导。除了敬佩李老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。其次要感谢我周围同学朋友的帮助,感谢他们提出宝贵的意见和建议,特别是在程序的编写方面,正因为如此我才能顺利的完成设计,我要感谢我的母校——开封大学,是母校给我们提供了优良的学习环境;另外,我还要感谢那些曾给我授过课的每一位老师,是你们的悉心教导使我有了良好的专业课知识。在此,我再说一次谢谢!谢谢大家!参考文献(1)张海藩,《软件工程》,清华大学出版社,2009(2)王凤岭,《ASP.NET程序设计实用技术》,人民邮电出版社,200538 开封大学软件学院软件技术专业毕业论文2012.04.12(3)张敏,《用ASP.NET开发动态网站》,清华大学出版社,2002(4)张超钦,《基于.NET的通用数据访问模型与实现》,信阳师范学院学报(自然科学版),2009(5)DinoEsposito著、施平安译,《ASP.NET2.0技术内幕》,清华大学出版社,2006(6)KoureshArdestani著、张哲峰译,《高效掌握ADO.NET—C#编程篇》,清华大学出版社,2003(7)余金山,《ASP.NET2.0+SQLServer2005企业项目开发与实战》,电子工业出版社,2008(8)陈萱华,《如何利用ASP.NET技术访问数据库》,计算机与现代化,2003(9)朱涛,《基于ASP.NET技术的WEB数据库分页显示》,电脑学习,2005(10)AlexHomer、李敏波译,《ASP.NET1.1高级编程》,清华大学出版社,2005(11)齐治昌、谭庆平、宁洪编著,《软件工程》,高等教育出版社,2001(12)DinoEsposito、梁超译,《构建Web解决方案一一应用ASP.NET和ADO.NET》,清华大学出版社,2002(13)ShawnWildermuth著、周靖译,《ADO.NET实用指南:面向Internet世界的数据访问技术》,清华大学出版社,200338'