APP下载

基于ASP.NET的网络在线论坛系统的设计与实现

2014-07-13娄月新

电脑知识与技术 2014年5期
关键词:回帖帖子数据库

摘要:随着Internet技术的不断发展,网络论坛已经成为人们自由交流的平台之一。为了创造一个多功能、多内容、多形式的论坛系统,该文在介绍了系统背景、需求分析、系统目标、数据库系统等内容之后,结合ASP.NET的相关内容进行网站设计。整个系统实现了用户信息的注册、登陆、查询,帖子的发表、删除、查询、评论等功能。系统地介绍了论坛系统前台及后台的设计,实现了网上论坛的动态管理,使得对信息的管理更加及时、高效,方便用户及时上网浏览有用信息,发表自己对相关问题的看法。

关键词:网络论坛;数据库;ASP.NET;SQL Sever 2005;Microsoft Visual Studio 2008

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)05-0938-04

Design and Implementation of A Network Online Forum System on ASP.NET

LOU Yue-xin

(Information Engineering College of Chang'an University,Xi-an 710021,China)

Abstract:With the continuous development of Internet technology, BBS has become one of the platform for people to communicate freely. In order to create a more functional, more content, more form BBS, In this paper,After the introduction of the background of the system, needs analysis, system target, database system and so on, combined with the related contents of ASP.NET to finish the website design.The system realizes user informations register, login,query and the articlesdelete, query,publication,comments and other functions. Introducing the design of the forum systems foreground and background ,achieving the dynamic management of BBS, making the management of information in a more timely, efficient.People can browse useful information and express their views.

Key words: network forum; database; ASP.NET; SQL Sever 2005; Microsoft Visual Studio 2008

随着Internet技术的飞速发展,BBS(Bulletin Board System)已经成为了人们在网络上进行自由交流的平台,收到了人们的广泛关注和喜爱。网络论坛系统是一个基于Internet的信息交流系统,可以让来自世界各地的用户通过Internet登录系统,浏览论坛中的所有帖子,并发表自己的看法建议,如此便可以丰富人们的知识,解决用户的困扰。

ASP.NET是一项微软公司的技术,可以使用Microsoft公司的IDE产品Visual Studio进行开发。因此,该文将介绍基于ASP.NET技术和SQL Sever 2005数据库相结合的方法,来构建论坛系统及后台数据库服务器,用户可通过IE或其他浏览器进行访问。

1 需求分析

BBS系统应覆盖世界各个角落以及所有的用户,因此系统应具有用户注册,使用户获得自己的登錄名及密码,从而进入系统。所有用户可以浏览系统中的全部帖子,同时可以发帖回帖,查询所有用户的信息、查询帖子信息。此外,系统设有单独的管理员,管理员具有更改用户权限,删除用户,管理帖子信息,删除帖子等功能。

2 系统设计

2.1 系统目标

网络在线论坛最终目的是为用户提供一个良好的沟通交流平台,得到用户的及时反馈。为了满足需求,系统应实现以下几个目标:

1) 系统界面友好、美观:使用户能够更快的进行网络页面的相应操作。

2) 划分用户级别、将不同的权限划分给不同的用户:用户和管理员应具有不同的权限,以此来更好地进行论坛的运作。

3) 易于维护和扩展:使用相应的类进行封装,提高系统的可扩展性,便于维护。

4) 系统运行稳定、可靠。

2.2 系统功能结构

网络在线论坛是一个ASP.NET程序,当进入论坛的首页后,不论是已经注册的用户,还是新注册的用户,其区别在于管理员和其他用户的功能不同。因此,根据论坛具备的功能将结构设计如图1所示。

图1 系统功能结构

2.3 业务流程

无论是用户还是管理员,其主要的不同点在于对于用户信息和帖子信息有不同的功能。业务流程为:用户进入系统后,进行注册并完成登录,此时判断是普通用户还是管理员二者拥有不同的功能。普通用户可以发表帖子、回复帖子、浏览帖子以及浏览论坛其他内容;而管理员在拥有普通用户功能的同时还要完成用户信息、帖子信息、回复信息的管理(更新、删除等)。

2.4 开发环境

将系统分为三大板块,即:网站、服务器端、客户端。

1) 网站开发环境采用Microsoft Visual Studio 2008集成开发环境,使用的语言为ASP.NET和C#,后台连接数据库使用SQL Sever 2005数据库管理系统。

2) 服务器端使用Windows 7操作系统,Web服务器为Win7系统自带的Internet信息服务(IIS)管理器。

3) 客户端则使用IE浏览器或者其他浏览器。

2.5 数据库设计

数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。数据库设计的优良将直接影响系统的效率。建立此系统数据库并命名为db_Discuss。

2.5.1 数据库概念设计

通过对系统进行的需求分析、网站流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象分别为发帖信息实体、回帖信息实体、头像信息实体以及用户信息实体,由此设计数据库系统E-R图来描述系统的概念结构。其E-R图如图2。

2.5.2 数据库逻辑结构设计

考虑各个板块及板块之间的关系,用户具有自己的相应信息,而帖子则是由用户进行发表、回复,之间存在多种依赖从属的关系。再根据各自板块的特有信息,设计四张表包含所有信息。四张表构建如下:

1) tb_Users(用户信息表):用户ID、用户姓名、用户密码、Email、头像标志。

2) tb_hf(回帖信息表):回复ID、回复的主题、回复的内容、回复人姓名、回复时间。

3) tb_Content(发帖信息表):发帖人ID、标题、内容、发帖人姓名、发帖时间、最后回复时间、点击量。

4) tb_touxiang(头像信息表):头像ID、图片。

3 访问数据库设计

系统在运行时,每一版块的功能都需要调用后台数据库,如果每次调用数据库将产生大量的代码冗余及运行效率的低下。因此,在开发项目中常以类的形式来组织,封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。该文创建了一个公共类DB类,主要用来访问SQL Server 2005数据库,数据库操作类主要的功能是连接数据库。

主要代码如下:

首先在命名空间区域引用命名空间:using System.Data.SqlClient;

连接数据库代码如下:

public class DB

{

public DB()

{//

// TODO: 在此处添加构造函数逻辑

//}

public static SqlConnection createDB()

{

return new SqlConnection("server=‘服务器名;database=‘数据库名;UID=‘登录名;password='登录密码'");

} }

4 网站首页设计

网络论坛首页主要显示论坛中帖子的信息列表,并提供了网站菜单导航及用户登录和注册功能,方便用户进行相应的操作。网站菜单导航,包括用户信息管理、修改当前用户信息、查询用户信息、查询帖子、发表帖子、用户注册等。

首页设计中使用的数据表为tb_Users、tb_Content两个表,将发帖信息和用户信息呈现在首页中。并使用GridView控件的两个关键技术——数据绑定技术和分页技术。

在动态网站的开发过程中,经常需要在表格控件中查看一些基本信息。网上论坛系统中使用分页技术将帖子的基本信息分页显示在网页中,方便对帖子信息的查看。用绑定技术来绑定注册用户发表的帖子的相关信息,如:帖子标题、发帖用户等。主要代码如下:

SqlConnection con = DB.createDB();//声明一个SqlConnection对象con,并建立數据库连接

SqlCommand cmd = new SqlCommand();//声明一个SqlConnection对象cmd,并实例化

cmd.Connection = con;

con.Open();//打开数据库连接

SqlDataAdapter sda = new SqlDataAdapter("select * from tb_Content", con);

DataSet ds = new DataSet();

sda.Fill(ds, "tb_Content");//将发帖信息表填入到数据库中

this.gvlt.DataSource = ds;//绑定数据源

this.gvlt.DataKeyNames = new string[] { "ContId" };

this.gvlt.DataBind();//绑定数据

con.Close();//关闭数据库连接

使用分页技术时,首先将AllowPaging属性设置为True,以允许空间分页,然后触发PageIndexChanging事件,代码如下:

this.gvlt.PageIndex = e.NewPageIndex;

this.aa();

5 注册用户信息设计

在网上论坛中发表帖子必须注册为会员。在网站首页中单击“注册”按钮,进入注册页面,在其中根据提示信息输入相关信息。用户可以选择数据库中自己的头像在论坛中代表自己的形象,单击“保存”按钮,即注册成功,并将此条信息添加到后台数据库中保存。

在注册模块中使用的数据表为tb_Users,将新信息添加到数据库中。注册过程中为了避免由于意外原因造成操作失误,引入了事务。事务处理可以避免某种原因而导致数据的错误,确保插入数据最终结果的确定性和一致性。方法为:在注册页面中,应用SqlConnection对象的BeginTransaction()方法创建名为st的SqlTransaction对象,然后将该对象分配给SqlCommand对象的Transaction属性,最后通过该对象的Commit()方法提交事务,利用SqlTransaction对象的Rollback()方法回滚事务。代码如下:

try

{

//向用户表中插入注册信息

cmd.CommandText = "insert into tb_Users(UserName, UserPwd, Ename, Email, Logo) values('" + this.txtname.Text + "','" + this.txtpwd.Text + "','" + this.txtywname.Text + "','" + this.txtemail.Text + "','" + this.ddltouxiang.SelectedItem.Text.ToString() + "')";

cmd.ExecuteNonQuery();

st.Commit();//提交事物

}

catch

{

Response.Redirect("~/tisixinxi/shibai.aspx");

st.Rollback();//回滚事物

6 查询信息设计

查询信息模块包括了用户信息查询以及帖子信息查询。用户可以根据不同的选项查看可公开的用户信息,可以查询较长时间前的帖子。

该模块中,使用了数据绑定技术。

6.1 查询用户信息设计

用户可点击“查询用户信息”进入用户信息查询界面,根据选项进行想要查询用户的个人信息,包括姓名、英文名、邮箱等信息。查询界面如图3。

图3 用户信息查询

6.2 查询帖子信息设计

用户在首页可点击“查询帖子”进入查询帖子页面,根据页面提示输入相应信息,找到所要查找的帖子信息,快速进行帖子查看。查询帖子页面如图4。

圖4 帖子信息查询

7 回帖设计

用户可以点击帖子详细信息页面中的的“我要回复”超链接后,再回帖子页面的最下方显示一个回帖信息,这时便可以回帖。

在回帖模块中主要涉及了DataList控件的利用内连接查询结束、利用DataList控件实现分页技术和数据绑定技术。

在系统中,我们既要显示帖子的信息又要显示回帖的信息,因此,要使用内连接。内连接是只返回同时和两个表或结果集匹配的数据行。内连接使用比较运算符比较要连接列的值的连接,在SQL-92标准中,内连接刻在FROM或WHERE子句中指定。内连接查询的语法格式如下:

Select fieldlist

From table[INNER] JOIN table1

On table.column = table1.column (下转第969页)

(上接第941页)

8 结束语

本文详细的介绍了网上论坛系统的整体设计思想与核心功能的实现方法及代码。整个系统已设计完成,具有简单、易操作的网页界面设计,以及较为全面的功能实现。用户能够通过浏览器访问系统前台网站,浏览有关信息、发表评论、查询信息、网络交流,集思广益解决问题。同时,使用ASP.NET、SQL Sever 2005等应用广泛、功能强大的技术进行开发,非常方便地实现一系列的功能,具有较高的变换性和移植性,能更好地适应Internet网上信息发布、信息交流和信息共享技术的发展与更新。

参考文献:

[1] 明日科技.ASP.NET项目开发案例全程实录[M].北京:清华大学出版社,2011.

[2] 程文玮.ASP.NET数据库管理[J].广州大学学报,2005(2).

[3] 谢晓勇.Windows Server 2003 Web服务器的配置与应用[J].电脑知识与技术,2006(29).

[4] 廖春盛,潘战生.ASP.NET DataGrid控件的使用[J].广东职业技术师范学院学报,2002(4).

[5] 李应伟,姚素霞,景丽.ASP.NET数据库高级编程(C#篇)[M].北京:清华大学出版社,2004.

[6] 张奇.基于ASP.NET的网络课程开发技术应用研究[D].重庆:重庆大学,2005.

猜你喜欢

回帖帖子数据库
谜语故事三则
数据库
暴力老妈
数据库
数据库
数据库
“术”材扩用·善意回帖
善意回帖:韩国教授的民间努力
爆强回帖集锦等
高手是这样拍马屁的