校园生活BBS网站建设毕业论文.doc_第1页
校园生活BBS网站建设毕业论文.doc_第2页
校园生活BBS网站建设毕业论文.doc_第3页
校园生活BBS网站建设毕业论文.doc_第4页
校园生活BBS网站建设毕业论文.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

设计(论文)专用纸校园生活BBS网站建设毕业论文目录摘要1Abstract2前言3第一章 BBS网站的引入51.1 BBS网站的概念51.2 BBS网站的特点51.3 BBS网站的发展和面临的问题6第二章 系统开发环境和开发过程72.1开发校园生活BBS网站使用的运行环境介绍72.1.1网站开发环境72.1.2 ASP.NET技术72.1.3 ADO简介82.2 visual studio访问数据库的方案9第三章 需求分析103.1系统功能需求分析103.2系统功能设计103.3系统流程图113.4数据库设计123.4.1数据库需求分析123.4.2 E-R图133.4.3数据库表设计14第四章 校园生活BBS网站系统的实现过程154.1系统首页实现154.1.1首页展示154.1.2网站首页技术分析164.1.3网站首页的实现过程194.2用户注册管理234.2.1注册信息页概述234.2.2注册信息页面技术分析244.2.3注册信息页面实现过程254.3用户登录管理294.4浏览帖子详细信息页面设计304.4.1浏览帖子详细信息页面概述304.4.2浏览帖子详细信息页面技术分析324.4.3浏览帖子详细信息页面实现过程334.5回复帖子页面设计364.5.1回复帖子页面概述364.5.2回复帖子页面技术分析374.5.3回复帖子页面实现过程384.6发表新帖子页面设计434.6.1发表新帖子页面概述434.6.2发表新帖子页面技术分析444.6.3发表新帖子页面实现过程454.7管理功能474.7.1用户信息管理474.7.2帖子审核49结论51总结与体会52致谢53参考文献5450 第一章 BBS网站的引入1.1 BBS网站的概念BBS的英文全称是Bulletin Board System,翻译为中文就是“电子公告板”。 目前,通过BBS系统可随时取得国际最新的软件及信息,也可以通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事,而且这个园地就在你我的身旁。只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域,进而去享用它无比的威力! 电子公告板(BBS)是一种交互性强、内容丰富而及时的Internet电子信息服务系统。用户可以通过Modem和电话线登录BBS站点,也可以通过Internet登录。用户在BBS站点上可以获得各种信息服务:下载软件、发布信息、进行讨论、聊天等。BBS站点的日常维护由BBS站长负责。 电子公告板(BBS)是Internet上的一种电子信息服务系统。它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。 电子公告板是一种发布并交换信息的在线服务系统,可以使更多的用户通过电话线以简单的终端形式实现互联,从而得到廉价的丰富信息,并为其会员提供进行网上交谈、发布消息、讨论问题、传送文件、学习交流和游戏等的机会和空间。1.2 BBS网站的特点一个典型的论坛有: 一台计算机一个或多个调制解调器一个或多个电话线一个论坛软件包用户社区1.3 BBS网站的发展和面临的问题国内的BBS站,单线站还占大多数。随着计算机的普及,特别是调制解调器的大量使用,BBS的活动将会进一步高涨。但是,随之而来的拨号难和抢线难的问题将会加剧。尽管BBS站台的数量在不断增长,但这种增长的幅度总也赶不上用户群的增长。许多人同时拨号一个站台,不可避免地发生冲突。每回要拨上几十次乃至上百次才能成功连上一个BBS站的状况已经成为困扰今日中国BBS用户的一个难题。随着BBS活动的深入,国内已经出现了一些多线站,一次可以允许多人进行同时访问。 BBS的发展过程中,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些网站的设立是相互抄袭,所以在结构上难免有雷同之处。 我们应该清醒地认识到,目前一些BBS站并没有走上“简单、易用”这一层次。包括一些厂商架设的BBS站,实用性还需要加强。今后,国内的BBS站将向着个性化和专业化的方向发展。第二章 系统开发环境和开发过程2.1开发校园生活BBS网站使用的运行环境介绍2.1.1网站开发环境网站开发环境:Microsoft Visual Studio 2005集成开发环境。网站开发语言:ASP.NET+C#。网站后台数据库:SQL Server 2005。开发运行平台:Windows XP (SP2)/ Windows 2000 (SP4)/ Windows Server 2003 (SP1)SP(Service Pack)为Windows操作系统补丁。服务器端操作系统:Windows Server 2003 (SP1)Web服务器:Internet信息服务器(IIS)管理器。数据库服务器:SQL Server 2005。浏览器:IE6.0。网站服务器运行环境:Microsoft.NET Framework SDK v2.0。客户端浏览器:IE6.0。分辨率:最佳效果1024*768像素。2.1.2 ASP.NET技术ASP.NET 是一个革命性的编程框架,使快速开发强大的 Web 应用程序和服务成为可行。它提供了最方便、最灵活的途径来构建,部署和运行 Web 应用程序,面向任何浏览器或设备。ASP.NET 的主要优点如下:ASP.NET 让构建实用 Web 应用程序前所未有的简单。ASP.NET 让开发人员充分利用他们现有的企业开发语言技能。Visual Basic .NET,C#,和 JScript .NET,给开发者提供选择语言的灵活度。增强的开发环境。开发人员使用任何文本编辑器,甚至是“记事本”,都可充分使用 ASP.NET 的全部功能。Visual Studio .NET 同样提供调试与部署 ASP.NET Web 应用程序的集成支持。改善的性能。代码与内容分离的特性使得 ASP.NET 网页被动态编译至托管的类以获得高性能。每个传入的 HTTP 请求都被提交至一个新的页面实例,因此开发人员不需要在代码中关心线程安全问题。简单快速的部署。ASP.NET 使用基于程序集的 Microsoft .NET 框架部署模型,也因此而由 xcopy 部署、程序集相邻部署,以及基于 XML 的设置特性获益。2.1.3 ADO简介ActiveXDataObjects(ADO)是微软最新的数据访问技术。它被设计用来同新的数据访问层OLEDBProvider一起协同工作,以提供通用数据访问(UniversalDataAccess)。OLEDB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。ADO向我们提供了一个熟悉的,高层的对OLEDB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLEDB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLEDB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLEDB提供者(OLEDBprovider)。目前,虽然OLEDB提供者比较少,但微软正积极推广该技术,并打算用OLEDB取代ODBC。2.2 visual studio访问数据库的方案public class DBpublic DB() public static SqlConnection createDB() /return new SqlConnection(server=.sqlexpress;database=db_Discuss;UId=sa;password=123); return new SqlConnection(server= 32D4A400050F410;database=db_Discuss;Integrated Security=True); server:SQL Server 2005数据库的服务器名称;database:需连接的数据库的名称;用SQL Server身份验证连接时,需写上用户名UID和密码password;用Windows身份验证连接时,则不需写用户名UID和密码password; 第三章 需求分析3.1系统功能需求分析对技术栏目的文章浏览和发表文章功能加以限制,论坛的管理功能尤为重要,将用户化为不同级别,根据用户级别的不同在论坛中为用户分配不同的权限,同时一个成功的BBS系统的考察、分析,要求本系统具有以下特点: 要求系统具有良好的人机界面。 功能强大,操作简单,扩展性强,稳定性高。 系统无操作系统限制,方便不同平台之间的移植。 网站最大速度的实现易维护性和易操作性。网站运行稳定、安全可靠。3.2系统功能设计根据以上系统的需求分析,可以得出系统前台和后台要实现的功能主要如下所述。系统具体要实现的功能如下: l 用户注册l 用户登录l 用户浏览帖子l 用户发新帖l 用户回复帖子l 用户查看自己信息l 用户修改自己的信息l 管理帖子信息:添加、删除以及更改帖子信息l 管理用户信息:添加、删除以及更改用户信息系统整体功能模块如图3-1所示:图3-1 系统整体功能模块图3.3系统流程图用户进入网站首页,可以浏览网站的所有信息,包括浏览、搜索相关信息。用户要想发帖,必须首先成为本站的会员。如果用户已经是本网站会员,则只需登录即可实现整个论坛的所有操作,除可以浏览外,还可以发新帖、回复帖子和管理自己的信息。管理员可以修改管理用户信息和帖子信息。系统流程图如图3-2所示。图3-2系统流程图3.4数据库设计3.4.1数据库需求分析1用户信息表:用户编号、用户名称、用户密码、英文姓名、电子邮件、头像2回帖子信息表:编号、回复编号、回复标题、回复内容、回复人、回复时间3发帖信息表:帖子编号、帖子主题、帖子内容、发帖人、创建日期、回复日期、浏览人数、置顶、人气指数、文章类型4头像信息表:头像编号、头像图片3.4.2 E-R图图3-3发帖信息实体E-R图图3-4回帖信息实体E-R图图3-5头像信息实体E-R图图3-6用户信息实体E-R图3.4.3数据库表设计用户信息表:用户编号、用户名称、用户密码、英文姓名、电子邮件、头像图3-7用户信息表回帖子信息表:编号、回复编号、回复标题、回复内容、回复人、回复时间图3-8回帖信息表发帖信息表:帖子编号、帖子主题、帖子内容、发帖人、创建日期、回复日期、浏览人数、置顶、人气指数、文章类型图3-9发帖信息表头像信息表:头像编号、头像图片图3-10头像消息表第四章 校园生活BBS网站系统的实现过程4.1系统首页实现4.1.1首页展示首页是网站的门户,既要方便用户使用,又要有创新,以便吸引更多用户来论坛。因此,在设计首页时,我将用户最常用的几个功能,如“会员注册”、“帖子浏览”、“发新帖”、“用户信息查询”以及“修改用户信息”等栏目设置在上导航栏中,“用户登录”、“注册”等栏目设置在下面导航栏内,而网页主体是帖子的标题以便用户浏览。页面示例如图4-1所示。图4-1网站首页 管理员登录后会显示“管理帖子”,其余会员及游客进入不会显示此区域。4.1.2网站首页技术分析点击“休闲娱乐”、“技术交流”、 “学科研究”、“求职信息”、“其他信息”。分别显示不同类别下的帖子,这五个连接是用LinkButton控件完成的,不同类别下的帖子信息显示用的是GridView控件实现的。点击“学科研究”显示如图4-2所示:图4-2 分区内容显示BBS网站首页主要应用了GridView控件的两个关键技术数据绑定和分页技术。在动态网站的开发过程中,经常需要在表格控件中查看一些基本信息,在网上在线论坛中使用GridView控件将网上在线论坛的帖子的基本信息分页显示在网页中,方便对帖子信息的查看。本页面使用到的GridView控件中与绑定和分页技术有关的属性、事件介绍如下。AllowPaging属性:获取或设置一个值,该值显示是否启用分页功能。DataSource属性:获取或设置对象,数据绑定控件从该对象中检索其数据项列表。DataKeyNames属性:获取或设置一个组合,该数据组包含了显示在GridView控件中的项的主键字段的名称。DataKeys属性:获取一个DataKey对象集合,这些对象表示GridView控件中每一行的数据键值。PageCount属性:获取在GridView控件中显示数据源记录所需的页数。PageIndex属性:获取或设置当前显示页面的索引。PageSize属性:获取或设置GridView控件在每一页面上所显示的记录数目。PageIndexChanging属性:在单击某一页面导航一按钮时,在GridView控件处理分页操作之前发生。根据以上技术分析,在应用程序中应用GridView控件来绑定注册用户发表的帖子的相关信息,如帖子标题、发帖作者、人气指数等。调用用户自定义方法aa(),首先创建一个新的数据库连接对象,并初始化一个SqlCommand命令对象,然后通过SqlDataAdapter(数据适配器)的Fill 方法填充创建的DataSet数据集,最后以Databind方法绑定数据库中数据,以显示注册会员发表的贴的相关信息。主要代码如图4-3:图4-3gvlt就是给GridView控件起的名称。在应用程序中应用GridView控件自带的分页技术时,首先将GridView控件的AllowPaging属性设置为True,以允许该控件分页,然后触发其PageIndexChanging事件,并在该事件中编写GridView控件分页的代码。如图4-4所示:图4-4PageIndex属性:获取或设置所显示的记录的索引;NewPageIndex属性:获取用户在GridView控件的页选择元素中选定的页的索引。4.1.3网站首页的实现过程本模块使用的数据库表为:tb_Users,tb_Content1.设计步骤下面对网站首页的制作过程进行详细的讲解,具体步骤如下:(1)在应用程序中新建一个Web窗体,命名为Default.aspx,该页面主要用于显示网站首页的相关信息。(2)在Web窗体的区域内添加一个Table,用于页面的整体布局,并在用户控件窗体的区域内放一个foot.ascx用户控件,用于显示网站底部信息。(3)在网站首页Default.aspx中涉及的主要控件、控件属性设置以及用途如表4-1所示:表4-1Default.aspx中涉及的主要控件控件类型控件ID主要属性设置用途TextBoxtxtname无输入登录用户名TextBoxtxtpwdTextMode属性设置为“Password”输入登录用户密码ImageButtonImageButton1ImageUrl属性设置为“/image/denglu an niu.gif”“登录”按钮ImageButtonbtnZcImageUrl属性设置为“/image/zhuce an niu.gif”“注册”按钮GridViewgvltAllowPaging属性设置为True(允许分页)AutoGenerateColumns属性设置为False(取消自动生成)PageSize属性设置为14(每页显示14条数据)显示帖子信息LabelLabel3Text属性设置为“用户名”显示“用户名”文字信息LabelLabel4Text属性设置为“密码”显示“密码”文字信息LinkButtonLinkButton2Text属性设置为“用户管理信息”显示“用户管理信息”文字信息LinkButtonLinkButton3Text属性设置为“修改当前用户信息”显示“修改当前用户信息”文字信息2.实现代码首先在后台代码的命名空间区域内,添加如下命令空间:如图4-5所示:图4-5在Page_Load事件中,通过CompareTo方法将系统时间域设定的时间13小时进行比较,来获取相应的问候语。如果系统时间比设定的时间13小时小,将显示“上午好!”;如果系统时间比设定的时间13小时大,将显示“下午好!”;其他情况显示“中午好!”。主要代码为,如图4-6所示:图4-6注释:Session:是ASP和ASP.NET中用于保持状态的基于Web服务器的方法,Session允许通过将对象存储在Web服务器的内存中在整个用户会话过程中保持任何对象。Session通常用于执行以下操作:存储需要在整个用户会话过程中保持其状态的信息,存储只需要在页面重新加载过程中或按功能分组的一组页面之间保持其状态的对象。Session的作用就是它在Web服务器上保持用户的状态信息提供在任何时间从任何页面访问,因为浏览器不需要存储任何这种信息,所以可以使用任何浏览器,即使是像PDA或手机这样的浏览器设备。实现GridView控件分页功能时,首先需要将GridView控件的AllowPaging属性设置为True,以允许该控件分页,然后触发PageIndexChanging事件,并在该事件中编写GridView控件分页的代码。如图4-7所示: 图4-7在论坛首页功能实现中,注册的会员及网站管理员都可在同一登录窗口输入各自的相关信息进入相应功能页面。单击页面中的“登录”按钮,触发其Click事件。protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) SqlConnection con = DB.createDB(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; con.Open(); /创建的命令文本属性设置 cmd.CommandText = select count(*) from tb_Users where UserName= + this.txtname.Text + and UserPwd= + this.txtpwd.Text + ; int a = Convert.ToInt32(cmd.ExecuteScalar(); if (a 0)/判断数据库中是否有数据 Response.Write(alert(恭喜您登录成功!);location=javascript:history.go(-1); SessionUserName = this.txtname.Text;/利用Session对象保存登录的用户名 SessionUserPwd = this.txtpwd.Text; this.Literal1.Text = SessionUserName .ToString()+ + 登录成功; txtname.Text = ; txtpwd.Text = ; else Response.Write(alert(很遗憾,登录失败!);location=javascript:history.go(-1); con.Close(); 注释:SqlCommand:表示要对SQL Server数据库执行的一个Transact-SQL语句或存储过程。ExecuteScalar:执行查询,并返回查询所返回的结果集中的第一行第一列,其他的行列忽略。4.2用户注册管理4.2.1注册信息页概述要在论坛中发表帖子必须注册成会员。在网站首页中单击“注册”按钮,进入注册页面,在其中根据提示输入相关信息。另外,注册的用户可以选择自己喜欢的有个性的头像在论坛中代表自己的形象。完成以上操作,单击“保存”按钮,系统核对后即可注册为会员。点击“”按钮,进入如下页面如图4-8所示: 图4-8用户注册协议 图4-9新用户注册信息点击“”即进入如图4-9所示:如果是已经注册了的名称,系统会提示如图4-10所示。注册成功,后会显示如图4-11所示。 图4-10重名提示 图4-11成功提示4.2.2注册信息页面技术分析在网上在线论坛中,当用户填写完注册信息,单击“保存”按钮时,程序会将用户填写的数据保存到用户信息表中,同时,程序还会向另一个数据表中存入本次注册操作的日志信息。为了避免在这个操作过程中由于意外原因造成操作失误,在程序中存入了事务。事务处理可以避免某种原因而导致数据的错误,确保插入数据最终结果的确定性和数据的一致性。 在注册信息页面中,应用SqlConnection对象的BeginTransaction方法创建名为st的SqlTransaction对象,然后将该对象分配给SqlCommand对象的Transaction属性,最后通过该对象的Commit方法提交事务,利用SqlTransaction对象的Rollback方法回滚事务。在ADO.NET中可通过连接类的BeginTransaction方法创建一个全新的本地事务,可以为该事务赋予一个名称和一个隔离级。BeginTransaction方法:该方法用于开始数据库事务。返回值:表示新事务的对象。Transaction:用于获取或设置将在其中执行SqlCommand的SqlTransaction。属性值:SqlTransaction默认为空引用。Commit方法:用于提交数据库事务。Rollback方法:用于从挂起状态回滚事务。在以上方法中为了向事务添加命令回滚,设置了命令对象的Transaction属性,但如果把一个命令对象的Transaction属性设置到了一个不是连接到同一个连接的事务对象,在试图执行一个语句时将会抛出一个异常,一旦所有的命令完成执行,调用事务对象的Commit方法完成,或者调用Rollback方法撤销该事务,并回滚所有的变更。通过使用Commit或Rollback方法,可显式地终止一个事务。SqlTransaction类支持事务中有名称的保存点(named savepoint),用它可以恢复事务的某一部分。有名称的保存点利用一个特定的SQL Server 特性:SAVE TRANSACTION语句。4.2.3注册信息页面实现过程1.设计步骤下面对网站首页的制作过程进行详细的讲解。具体步骤如下:在应用程序中首先创建一个名为zhucexinxi的文件夹,在该文件夹下创建一个Web窗体,命名为zhuce.aspx,该页主要显示用户注册的相关信息。在Web窗体的区域内添加一个Table,用于页面的整体布局,并在用户控件窗体的区域内拖放一个foot.ascx用户控件,用于显示网站底部信息。在用户注册页zhuce.aspx中涉及的主要控件、控件属性设置及用途如表4-2所示:表4-2注册信息页中用到的主要控件控件类型控件ID主要属性设置用途TextBoxtxtname 无输入用户姓名TextBoxTxtpwdTextMode属性设置为Password输入用户密码ButtonbtnokText属性设置为“保存”“保存”按钮(单击“保存”按钮,将用户输入的注册信息填充到数据库中)DropDownListddltouxiang无显示头像图片的路径(可以从下拉列表中选择头像图片)LinkButtonLbtnText属性设置为返回首页“返回首页”文字信息(单击LinkButton控件将连接到网站首页)Imageimgtouxiang无当用户选择DropDownList下拉列表框中的头像路径时,将该头像的图片绑定到Image控件中,并显示出来RequireFieldValidatorRfvnameControlToValidate属性设置为“txtname”, Display属性设置为Dynamic(表示验证控件中错误信息的不同显示行为。Display有3个值,分别是NoneStaticDynamic)ErrorMessage属性设置为“用户姓名不能为空”(当文本框中没有输入任何信息时,将显示用户名不能为空)当TextBox控件中没有输入任何信息时将显示“用户名不能为空”2.代码实现:引入命名空间,代码如下:using System.Data.SqlClient;在page_load事件中,根据传过来的变量Id的中值查询头像信息表,主要通过SqlDataAdapter类实现,然后通过Fill方法,将数据绑定到数据集中并且将数据绑定到DropDownList控件中加以显示。如图4-12所示:图4-12DataTextField属性:获取或设置要绑定到DropDownList控件的数据源的字段名。SelectValue:获取或设置Image控件中选定DropDownList控件的值。单击“保存”按钮,通过SqlConnection对象的BeginTransaction方法创建名为st的SqlTransaction对象,然后将该对象分配给SqlCommand对象的Transaction属性,然后通过该对象的Commit方法提交事务,利用SqlTransaction对象的Rollback方法回滚事务。关键代码如下: protected void Button1_Click(object sender, EventArgs e) SqlConnection con = DB.createDB(); con.Open(); SqlTransaction st = con.BeginTransaction();/通过SqlConnection的BeginTransaction方法创建名为st的对象Transaction SqlCommand cmd = con.CreateCommand(); cmd.Transaction = st;/将SqlTransaction对象分配给SqlCommand对象的Transaction属性 try . st.Commit();/提交事务st.Rollback();/回滚事务 con.Close();BeginTransaction方法:开始数据库事务。CreateCommand方法:创建并返回与当前连接关联的DBCommand对象。Commit方法:提交事务。在注册过程中选择标识自己的头像时,应用到了一个DropDownList控件,在该控件中触发其SelectedIndexChanged事件,将该控件中选择的值传送到Image控件当中。如图4-13所示:图4-13在该注册页中,添加了一个“返回首页”的超链接,用于将页面跳转到网站首页。如图4-14所示:图4-144.3用户登录管理输入用户名和密码,系统检测用户名是否存在,如果不存在,则跳到注册页面,如果存在,则进入数据库,查询用户名和密码是否一致,如果有一个不准确,则显示如图4-15所示,如果都正确,则显示如图4-16所示。流程图如图4-17和图4-18所示。 图4-15 图4-16 图4-17 图4-184.4浏览帖子详细信息页面设计4.4.1浏览帖子详细信息页面概述在网站首页的帖子信息列表中,当用户单击某条帖子后面的“详细信息”超链接时,即可进入到该帖子的详细信息页面中。浏览该帖子的详细信息页面的运行效果如图4-19所示:图4-19帖子详细信息页面4.4.2浏览帖子详细信息页面技术分析网上在线论坛的浏览帖子详细信息页面中,主要用到了DataList控件的两个关键技术数据绑定技术和删除功能。(1)DataList控件的数据绑定技术 在动态网站的开发过程中,经常需要在表格控件中查看一些基本信息,在网上在线论坛中使用DataList控件将帖子的基本信息分页显示在网页中,方便对帖子信息的查看。本页面使用到的DataList控件中与绑定有关的属性、事件如下:DataKeyField属性:获取或设置由DataSource属性指定的数据源中的键字段。DataKeys属性:获取存储数据列表控件中每个记录的键值。DataMember属性:获取或设置多成员数据源中要绑定到数据列表控件的特定数据成员。DataSource属性:获取或设置数据源,该数据源中包括用于填充控件中的项的值列表。(2)DataList控件的删除功能 在开发像博客、论坛这样的网站时,通常都有一个模块允许注册用户对某些文章发表自己的观点,但为了防止恶意攻击,需要对一些数据进行清理,管理员在查看帖子信息时,可以直接在某条留言信息上单击“删除”按钮将其删除。网上在线论坛网站中通过在DataList控件中使用LinkButton控件,实现对文章评论的删除功能。 本页面中主要实现DataList控件中信息的删除功能,其相关属性和事件说明如下:CommandName属性:该属性可以分为分别设置为Cancel、Delete、Edit、Selete和Update,分别用来表示“取消”命令名,“删除” 命令名,“编辑” 命令名,“选择”“修改” 命令名。ItemCommand事件:在用户选择与项关联的命令时发生。ItemDtatBound属性:当项被数据绑定到DataList控件时发生。 网上在线论坛中浏览帖子详细信息页面中的DataList控件实现删除功能的事件是写在ItemCommand事件中的,前提是必须将LinkButton控件中的CommandName属性的值设置一下,然后在ItemCommand事件中只要判断CommandName属性的值即可。如果不想在ItemCommand事件中写删除语句,也可在DataList控件中实现删除功能,通过设置LinkButton控件的CommandName属性为Delete,并触发DataList控件的DeleteCommand事件,因此可以将语句写在DeleteCommand事件中。4.4.3浏览帖子详细信息页面实现过程1.设计步骤下面对浏览帖子详细信息页面的制作过程进行详细的讲解,具体步骤如下:在应用程序中首先创建一个名为tiezixinxi的文件夹,在该文件夹下创建一个Web窗体,命名为chakan.aspx,该页主要用于显示论坛用户发表的帖子信息。在Web窗体的区域内添加一个DataList控件,用于显示帖子的详细信息。在DataList控件中添加显示帖子详细信息用到的控件,在DataList控件中涉及的主要控件、控件属性及用途如表4-3所示:表4-3 chakan.aspx页中用到的主要控件控件类型控件ID主要属性设置用途TextBoxTextBox1TextMode属性设置为MultiLine将帖子内容详细信息绑定到TextBox控件中DataListDlxx无用于显示帖子的详细内容LinkButtonLinkButton1 Text属性设置为“我要回复”,CommandName属性设置为hf显示“用户信息管理”文字信息(单击LinkButton控件将信息传递给回帖信息表中)LinkButtonLinkDeleteText属性设置为“删除此帖”,CommandName属性设置为sc显示“用户信息管理”文字信息(单击LinkButton控件将删除DataList控件中的帖子信息)LabellblnameText属性设置为“发帖人名”显示“发帖人名”的文字信息Labellblbh无用于绑定帖子编号的详细信息ImageImgtx无用于绑定帖子的头像信息的照片2实现代码:引入命名空间,代码如下:using System.Data.SqlClient;在页面的page_load事件中,调用绑定帖子信息表的用户自定义aa方法,将帖子信息显示到DataList控件中。调用绑定回复帖子信息表的用户自定义hfbind方法,将回复帖子信息显示到DataList控件中。调用用户自定义方法的分页pagebind方法,将信息显示到DataList控件中。关键代码如下:protected void Page_Load(object sender, EventArgs e) lblhtyhm.Visible = false; if (!IsPostBack) this.aa();/调用绑定方法 this.pagebind();/调用分页方法 string ContId = RequestContId; SqlConnection con = DB.createDB(); con.Open(); SqlCommand cmd1 = new SqlCommand(update tb_Content set HitCount=HitCount+1 where ContId= + ContId + , con); cmd1.ExecuteNonQuery(); con.Close(); /this.hfbind();/调用绑定方法 该页面的page_load事件中调用了自定义的aa()方法,aa()方法为自定义的无返回类型方法,该方法主要用来从数据库中查询出符合指定条件的记录,并绑定到DataList控件中。public void aa() string ContId = RequestContId; SqlConnection con = DB.createDB(); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(select top 1 a.*,b.* from tb_Users as a join tb_Content as b on a.UserName=b.UserName where b.ContId= + ContId + , con); DataSet ds = new DataSet(); sda.Fill(ds, tb_Content); this.dlxx.DataSource = ds; this.dlxx.DataBind(); con.Close();/关闭数据库连接 Request对象:获取当前请求所对应的内部请求对象。SqlConnection类:表示SQL Server 数据库一个打开的连接。Fill方法:在DataSet中添加或刷新行以匹配使用DataSet名称的数据源的行,并创建一个DataTable。DataBind方法:将数据源绑定到被调用的服务器控件及其所有子控件。在DataList1_ItemCommand事件中,首先判断CommandName的值是否是hf,也就是单击“回复信息”超链接,然后判断是否登录,如没有登录,将页面跳转到登录页面中,如果已经登录则根据SqlDataReader对象的应用,将回复信息的标题和回复信息的编号读取出来,并加以显示。protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) if (e.CommandName = hf) if (SessionUserName = null & SessionUserPwd = null) Response.Redirect(/denglu/denglu.aspx); else this.lblhtyhm.Text = SessionUserName.ToString(); string ContId = RequestContId; SqlConnection con = DB.createDB(); con.Open(); SqlCommand cmd = new SqlCommand(select a.*,b.* from tb_Users as a join tb_Content as b on a.UserName=b.UserName where b.ContId= + ContId + , con); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); 注释:CommandName:获取或设置命令名,该命令名于传递给Command事件的 Button控件相关联。Session::存储需要在整个用户会话过程中保持其状态的信息。Response:提供当前页的输出流的访问。Redirect方法:获取或设置重定向URL。Read:获取或设置该字符串值所指定环境变量的读访问权限。4.5回复帖子页面设计4.5.1回复帖子页面概述回复帖子和浏览帖子详细内容在同一个页面中,目的是当单击帖子详细信息页面的“”超链接后,在回复帖子页面的最下方显示一个回帖信息,这时便可以回帖了。回复帖子的页面运行效果如图4-20所示:图4-20回复帖子页面4.5.2回复帖子页面技术分析网上在线论坛的回复帖子页面中,主要设计DataList控件的利用内连接查询技术,利用DataList控件实现分页技术和DataList控件的数据绑定技术。下面将对以上技术作详细介绍:(1)内连接查询技术 同时显示两张表的信息,就需要使用内连接,内连接INNER JOIN只返回同时和两个表或结果集匹配的数据行。内连接是用比较运算符比较要连接列的值的连接,在SQL92标准中,内连接可在FROM或WHERE子句中指定。内连接又称对等连接,它返回两个表中的所有的列,但只返回在连接列中具有相等值的行。(2)DataList控件实现分页技术在开发论坛网站时,常常需要在页面中比较全面的显示一些信息,但如果要显示的信息记录过多,用一个页面显示所有的记录会给用户带来很大的不便,为了解决这个问题,DataList控件的分页技术可以限定一个页面中显示的记录数。本页面使用到的DataList控件中与分页有关的属性、事件如下:AllowPaging属性:获取或设置由DataSource属性指定的数据源中的键字段。AllowCustomPaging

温馨提示

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

评论

0/150

提交评论