留言表的设计.doc_第1页
留言表的设计.doc_第2页
留言表的设计.doc_第3页
留言表的设计.doc_第4页
全文预览已结束

下载本文档

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

文档简介

基于 ASP.NET 的网上留言板系统的设计与实现 摘 要:随着 Internet 技术的发展,“网上留言板系统”已成为网络上不可缺少的交流方式之一。“网上留言板系统”是网上的一种信息服务系统,是一种简洁而实用的在线交流平台。ASP.NET 是一种建立动态 Web 应用的技术,经过多年的发展渐入佳境。相比其他的 Web技术来说,ASP.NET 更快捷、更安全、更稳定。在介绍了系统的设计目标、功能和数据库设计方案之后,结合 ASP.NET 的开发环境阐述了系统的实现方法。利用 ASP.NET 技术开发的企业网上论坛系统,实现了网上论坛的动态管理,使得对信息的管理更加及时、高效,方便用户及时上网浏览有用信息,发表自己对相关问题的看法,也使管理更有效、快捷。关键词:网上留言板系统;ASP.NET;数据库;ADO.NET;DateSet中图分类号:TP3151. 引 言 随着网络的应用越来越广泛,国内外不少的大中型企业都不约而同地意识到利用网络传递信息可以很大程度上提高办事效率。搭建一个企业与用户的在线交流平台显得尤为重要。 “网上留言板系统”是网上的一种信息服务系统,是一种简洁而实用的在线交流平台,网站访问者可通过留言板与企业进行交流。该系统支持注册,留言,删除留言内容,回复留言等功能。通过留言板系统。令信息的发布可以面向群组和个人;来自不通部门、地区的人员可以一起讨论感兴趣的话题,而管理员可以管理和答复其他人的话题。 ASP.NET 是微软公司的 ASP 和.NET Framework 这两项核心技术的结合,功能强大、技术非常灵活,适合于编写动态 Web 页面。因此,本文选择 ASP.NET 技术来构建论坛系统,采用 SQLServer 2000 数据库管理系统作为数据库服务器,客户端通过 IE 或其它 WWW浏览器来使用系统所提供的所有功能。2. 系统概述及设计2.1 系统设计目标 根据不同的用户,网上留言板系统可以分为用户功能区和管理员功能区。用户功能区根据用户的需求可以进行浏览,注册,留言,查看管理员回复等操作。在管理员功能区,管理员通过输入的账号和密码可以进行留言信息的管理包括修改和删除操作,同时可以进行留言回复的操作。 (1)系统总体框架:该系统设计流程是:首先创建留言板系统的数据库,再设计该系统的功能,然后再编写源代码实现系统功能,并在表示层制作与用户的对话界面;将系统上传到浏览器进入应用层之后,用户试用该系统。该流程对应的系统框架为:数据层设计数据服务配置信息系统表示层应用层用户接口层1。系统总体框架如图 1 所示。 -1- 数据层 登陆页面 Login.aspx 设计数据服务 注册界面 注 册 未注册 Default2.aspx 配置信息系统 已注册 管理员 否 表示层 是 管理员界面 用户界面 应用层 Admin Default.aspx 用户接口层 图 1 系统总体框架图 图 2 系统功能模块页面流程图 (2)面向对象设计:系统中将文章、用户信息等都封装成相应的类,从而再次提高了对述据库操作的安全性和程序的可扩展性。 (3)人性化设计:系统界面设计充分考虑到用户上网习惯,从简单实用出发,易于操作。2.2 系统功能模块设计 将系统功能分为前台和后台两大类,设有注册用户,非注册用户,管理员三种权限之所以把属于管理员权限的管理帖子模块归于前台,是因为考虑到对于一个论坛系统而言,帖子是最主要的。为了方便管理,管理员需要一边浏览查看一边进行管理,管理时需要了解帖子的详细内容,以及相关回帖信息,因此将帖子的管理界面融合在前台的浏览界面中。其他的模块,则是完全根据用户权限进行划分。系统功能模块页面流程如图2所示。2.3 系统总体结构 本网上留言板系统主要是通过四个页面来实现普通用户功能区和管理员用户功能区。各个页面的关系如图 2 所示。留言板系统的工作流程图如图 3 所示。 图 3 留言板系统工作流程2.4 数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接影响应用系统的效率及实现的效果,合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性2。 在本系统数据库逻辑结构设计中。确定了论坛有哪些数据表及其关系,就可以开始设计每个表的具体结构。分析留言板系统要实现的功能,需要建立一个数据库 GuestBook1库中两个表格分别实现留言存储处理的 tbGuestBook 和实现注册用户名及管理员存储处理的Users。表 1 为实现记录用户留言的 tbGuestBook。Users 表用于保存用户信息,字段设计包括用户名、密码和电子邮件。 表1 tbGuestBook 字段名 字段类型 允许空 字段说明ID int 表主键字段,自增UserName varchar50 留言用户名PostTime datetime 留言时间Message varchar400 留言内容IsReplied bit 留言是否回复Reply varchar400 留言管理员回复3系统的实现3.1 开发环境 (1)操作系统:Windows 2000 Server 及以上服务器版本; (2)数据库管理系统:SQL Server 2000; (3)Web 服务器:Internet Information ServicesIIS; (4)编程工具:编程软件为 Visual Studio.Net 2005,使用 ASP.NET 作为网络编程开发框架,编程语言选用 C。 -3- 3.2 .NET 的数据访问技术 在设计中应用了 ADO.NET 数据访问技术。数据库访问一直都是数据库系统开发的一个重要方面,ADO.NET 是微软.NET 框架中的一种新的数据访问技术,它能用于访问关系型数据库系统,如 SQL Server 2000,及很多其他已经配备了 OLE DB 提供程序的数据源。以前,数据处理主要依赖于基于连接的双层模型。当数据处理越来越多地使用多层结构时,程序员正逐渐向断开方式转换,以便为应用程序提供更佳的可缩放性。 ADO.NET 提供两个核心组件:DataSet 和 Data Provider,通过 ADO.NET 可以从数据操作中分解出数据访问3。3.3 数据库连接 第一步,创建一个 ASP.NET 网站,取名为“GuestBook”,语言选择 C。 第二步,创建数据库,打开服务器资源管理器,单击“数据连接”在菜单中选择“创建新的 SQL Server 数据库”,在打开的对话框内填写本地服务器名及建立的数据库名,在新建立的数据库中加入表 Guestbook1 及 Users。 第三步,实现数据库的连接,对于连接各种数据库,首先都需要使用一个连接字符串来定义诸如数据库名,认证方式,账号等各种参数。再利用 Connection 对象连接数据库。在需要访问数据库的页面中进行编码。基础操作如下: (1)建立一个连接对象,并且告诉它连接的字符串。 SqlConnectionconnnewSqlConnectionserverchinese-6976865databaseGuestBo ok1Trusted_ConnectionTrue (2)使用要执行的 SQL 语句。例如 INSERT 语句等 (3)建立一个 Command 对象来执行 SQL 语句,关联了两个内容:需要执行的 SQL 语句和使用的连接对象。 SqlCommand cmd new SqlCommandSql conn (4)打开连接对象 conn.Open (5)执行语句并返回结果。 cmd.ExecuteNonQuery (6)关闭连接对象,释放资源。 cmd.Dispose conn.Close3.4 程序性能的优化 作为一个 ASP.NET 开发者,网站的性能是至关重要的,没有良好的性能就无法满足众多用户访问的庞大要求。在本系统设计中主要使用了如下的控件和方法实现网站的优化。3.4.1 DataSet 类的使用 DataSet 类则是 ADO.NET 核心的成员之一,也是各种开发基于.Net 平台程序语言开发数据库应用程序最常接触的类。之所以 DataSet 类在 ADO.NET 中具有特殊的地位,是因为DataSet 在 ADO.NET 实现从数据库抽取数据中起到关键作用。各种.Net 平台开发语言开发数据库应用程序,一般并不直接对数据库操作(直接在程序中调用存储过程等除外),而是先完成数据连接和通过数据适配器填充 DataSet 对象,然后客户端再通过读取 DataSet 来获得需要的数据,同样更新数据库中数据,也是首先更新 DataSet,然后再通过 DataSet 来更 -4- 新数据库中对应的数据的。 DataSet 其实就是数据集,对于任何数据源,它都提供一致的关系编程模型。在 DataSet中既定义了数据表的约束关系以及数据表之间的关系,还可以对数据表中的数据进行排序等。DataSet 使用方法一般有三种:把数据库中的数据通过 DataAdapter 对象填充 DataSet;通过 DataAdapter 对象操作 DataSet 实现更新数据库; XML 数据流或文本加载到 DataSet。 把 在本系统中运用了 DataAdapter 对象填充 DataSet 及通过 DataAdapter 对象操作 DataSet实现更新数据库: (1)把数据库中的数据通过 DataAdapter 对象填充 DataSet: DataAdapter 填充 DataSet 的过程分为二步:首先通过 DataAdapter 的 SelectCommand 属性从数据库中检索出需要的数据。SelectCommand 其实是一个 Command 对象。然后再通过DataAdapter 的 Fill 方法把检索来的数据填充 DataSet。 以下仅给出简要相关代码: SqlDataAdapter da new SqlDataAdapterSql conn DataSet ds new DataSet da.Fillds (2)通过 DataAdapter 对象操作 DataSet 实现更新数据库: DataAdapter 是通过其 Update 方法实现以 DataSet 中数据来更新数据库的。当 DataSet实例中包含数据发生更改后,此时调用 Update 方法,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE),并以此命令来更新数据库中的数据。 以下仅给出简要相关代码: stringSqlUPDATEtbGuestBookSETIsReplied1ReplyTextBoxe.Item.FindControl tb_Reply.TextWHERE PostTimee.CommandArgument SqlCommand cmd new SqlCommandSql conn3.4.2 Repeater 控件的使用 Repeater 控件用来显示被绑定到此控件的数据项的一个循环序列。Repeater 控件可以被绑定到数据库表、XML 文件或者任何数据项序列。在系统中将重复使用的属性和方法定义成类或组件,如 Repeater 是一个可重复操作的控件,也就是说,它通过使用模板显示一个数据源的内容。Repeater 包含如标题和页脚这样的数据,它可以遍历所有的数据选项并应用到模板中。而 Repeater 控件是“无外观的”,即:它不具有任何内置布局或样式,也就不会产生任何数据控制表格来控制数据的显示。因此,我们必须在控件的模板中明确声明所有HTML 布局标记、格式标记和样式标记。Repeater 控件是个轻量级的数据绑定控件,一般用它来输出要求相对简单的数据,利用 Repeater 控件的控能,进行数据显示,数据分页,嵌入控件响应事件等等。所以本系统通过 Repeater 控件来显示留言板的内容4。 使用 Repeater 控件的第一步骤是决定我们将要使用的数据源和字段。本系统中设置Repeater 控件的数据源为 DataTable。然后将 Repeater 控件绑定到数据源。 以下仅给出简要相关代码: DataTable dt ds.Tables0 rpt_Message.DataSource dt rpt_Message.DataBind3.4.3 使用 Page.IsPostback 属性 使用 Page.IsPostback 可以避免页面往返过程中没有必要的工作。开发者往往将初始化 -5- 的代码放入到 page_load 函数中,这样造成的结果是每次往返过程都将调用初始化代码5。 Page.IsPostback 的值为 false 时,表示是初次运行页面,需要初始化,否则无需进行初始化代码。使用 Page.IsPostback 属性的 系统代码结构如下: private void Page_Loadobject sender System.EventArgs e /在此处放置用户代码以初始化页面 if Page.IsPostback .3.5 论坛系统的运行 启动论坛系统应用程序,如图 4、5、6、7 所示 图 4 登陆页面 图 5 用户页面 图6 管理员页面 图 7 注册页面 (1)输入用户名和密码,点击登陆,系统进行密码认证,若用户已注册为论坛合法用户。则进入“注册用户登录”页面进行浏览,留言,查看回复等操作。 (2)若输入的用户名为未注册用户页面跳转显示提示是否注册,若点击确定,进如用户注册页

温馨提示

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

评论

0/150

提交评论