目录
摘 要
Abstract
第一章 引言
第二章 需求分析
1.1 功能需求
1.2 系统需求
第三章 数据库设计
第四章 系统总体设计
4.1 系统功能描述
4.2 系统功能模块划分
4.3 系统部分模块详细设计
第五章 系统详细设计
5.1 系统通用类设计
5.2 新闻种类管理
5.3 新闻管理
5.4 用户及其角色管理
5.4.1用户管理
5.4.2角色管理
5.4.3角色权限分配
5.4.4角色权限分配
5.5 系统文件和链接管理
5.6 系统前台新闻显示
总结
致谢
参考文献
4.1 系统功能描述
动态新闻发布系统主要包括新闻种类管理、新闻管理、用户管理、文件或附件管理、用户角色管理、用户角色分配等功能,各个功能的具体描述如下:
- 新闻种类管理
- 添加新的新闻种类,新闻种类为新闻的上级目录;
- 修改新闻种类;
- 删除新闻种类;
- 排序新闻种类,排序主要体现在前台显示上,包括新闻种类上移功能和下移功能。
- 新闻管理
- 添加新的新闻,新闻为系统的主要内容,其中新闻又包括普通新闻、图片新闻和附件新闻几个大类;
- 修改新闻,同时可以更新新闻的附件;
- 删除新闻,同时从服务器上删除该新闻所包括的附件;
- 上载新闻的附件,包括图片附件和文件附件。
- 用户管理
- 添加系统管理用户,包括系统用户和新闻管理用户,其中系统用户维护系统的正常运行,新闻管理用户管理系统的新闻信息及其资源;
- 修改系统管理拥护,该项功能主要是修改用户的权限等;
- 删除系统管理用户以及该用户的权限;
- 管理用户更新自己的密码。
- 文件或附件管
文件或附件和系统新闻属于同一级别的内容,都是新闻种类的子目录。文件或附件管理主要管理系统链接地址和附件等内容,它的具体功能如下:
- 添加新的附件或链接地址;
- 修改附件或链接的地址;
- 删除附件或链接的地址。
- 用户角色管理
用户角色管理主要是管理系统的角色,如系统管理员、普通管理员等。系统中的不同角色管理权限是不相同的。它的具体功能如下:
- 添加新的用户角色;
- 修改用户角色;
- 删除用户角色。
- 用户的角色分配管理
用户的角色分配管理主要管理用户的角色分配问题,不管是系统的新用户或是已经存在的老用户,系统可以动态分配给他们的角色。它的具体功能如下:
- 修改用户的角色;
- 删除用户的角色。
- 前台新闻显示功能
前台新闻显示功能主要显示系统的新闻、图片、附件或链接地址,它还实现按照新闻种类来显示不同的新闻,同时还提供了新闻搜索功能。它的具体功能如下:
- 显示新闻;
- 浏览新闻;
- 搜索新闻;
- 快速链接。
图4-2 新闻发布系统功能模块设计图
修改和删除功能设计在一个页面上,具体的设计界面如图5-1所示:

图5-1

5.3新闻管理
系统的新闻后台管理模块管理新闻数据的添加、修改和删除功能。新闻是站得二级目录,直属于新闻种类,所以在添加、修改或者擅场新闻时,必须先选择该新闻所属的新闻种类。下面将介绍新闻上载、新闻修改、新闻删除以及新闻附件的添加等几个功能的具体实现方法。
-
- 界面设计
新闻管理功能由页面NewsManage.aspx、页面AddNews.aspx、页面EditNews.aspx和页面DeleteNews.aspx实现,他们的代码隐藏文件分别为NewsManage.aspx.cs文件、AddNews.aspx.cs文件、EditNews.aspx.cs文件和DeleteNews.aspx.cs文件。
新闻管理界面如图5-3所示,界面使用下拉列表显示新闻数据,使用ListBox控件显示新闻标题,使用“添加新的新闻”按扭、笔形按扭和“×”按扭分别实现新闻的添加、修改和删除功能,即实现跳转到添加页面(AddNews.aspx)、修改页面(EditNews.aspx)和删除页面(DeleteNews.aspx)的功能。

图5-3
在新闻管理页面中,页面初始化需要绑定下拉列表控件和普通列表控件的数据。该功能分别由函数BindNewsKindData()和函数BindNewsData()实现。第一个函数从NewsKinds表中获取新闻种类数据,第二个函数从News表中获取新闻数据,两者都使用DataReader对象保存获取的新闻种类和新闻数据。
在新闻页面初始化时,调用函数Page_Load()绑定控件的数据。在绑定新闻数据时,必须首先判定新闻的上级目录——新闻种类是否存在,如果不存在,则不绑定新闻列表控件的数据,否则调用新闻数据绑定函数BindNewsData()绑定新闻列表控件的新闻数据。
在图5-3中还使用3个跳转按钮,分别跳转到新闻添加页面、新闻修改页面和新闻删除页面。3个跳转按钮触发不同的跳转函数,分别为AddNews_Click()函数、editBtn_Click()函数和deleteBtn_Click()函数。这3个跳转函数使用Response对象的Redirect()重定向函数,它们的区别为跳转到不相同的页面地址和携带不相同的参数,它们的代码如下:
///跳转到新闻添加页面
private void AddNews_Click(object sender, System.EventArgs e)
{
if(NewsKindList.Items.Count > 0)
{ ///跳转到新闻添加页面
Response.Redirect("~/Admins/AddNews.aspx?NewsKindID=" + NewsKindList.SelectedValue);
}
else
{
Response.Write("<script>alert(\"你不能在此添加新闻,因为没有上级模块选择!\")</script>");
}
}
///跳转到新闻修改页面
private void editBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(NewsList.SelectedIndex > -1)
{ ///跳转到新闻修改页面,同时携带参数新闻ID
Response.Redirect("~/Admins/EditNews.aspx?&NewsID=" + NewsList.SelectedValue);
}
else
{

Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
}
}
///跳转到新闻删除页面
private void deleteBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(NewsList.SelectedIndex > -1)
{ ///跳转到新闻删除页面,同时携带参数新闻ID
Response.Redirect("~/Admins/DeleteNews.aspx?NewsID=" + NewsList.SelectedValue);
}
else
{
Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
}
}
-
- 添加新闻
页面AddNews.aspx实现新闻添加功能,该页面上的新闻标题TestBox控件、新闻内容TestBox控件和Button按钮分别用于输入新闻标题、输入新闻具体内容和提交新闻内容到数据库。页面AddNews.aspx运行后,界面如图:

图5-4
在添加新闻时,必须先获取所添加的新闻所属的新闻种类,所以在新闻管理页面中单击“添加新的新闻”按钮跳转到添加页面的同时,要把新闻种类的ID参数传如到该页面。该页面初始化函数Page_Laod()从Request对象中取到参数NewsKindID的值。
AddNews.aspx页面主要实现了两个功能,一个是添加新的新闻到数据库中,另一个是预览添加的新闻。新闻添加功能由函数AddNews_Click()实现。该函数使用IF语句判断新闻的标题和内容是否为空,如果不为空,则提交新闻到数据库中,否则弹出提示对话框。函数的程序代码如:
private void AddNews_Click(object sender, System.EventArgs e)
{
if(NewsTitle.Text.Trim().Length > 0 && NewsBody.Text.Trim().Length > 0)
{ ///构建数据库连接和添加新闻的SQL语句
SqlConnection myConnection = new SqlConnection(DataBaseDB.ConnectionString);
String cmdText = "INSERT INTO NEWS (Title,Body,Pubdate,NewsKindID,UserID)VALUES('"
+ NewsTitle.Text + "','" + NewsBody.Text + "',GetDate(),'" + nNewsKindID.ToString()
+ "','" + Session["UserID"].ToString() + "')";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
///打开数据库连接并执行添加操作
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
///返回新闻管理页面
Response.Redirect("NewsManage.aspx");
}
else
{
Response.Write("<script>alert(\"新闻的标题不能为空!\")</script>");
}
}
预览新闻功能的实现主要依靠全局变量Session对象,该变量临时缓存新闻的数据。当单击“预览新闻”按钮时,弹出一个新的新闻显示页面临时显示添加的新闻。预览功能的程序代码如下:
private void PreviewNews_Click(object sender, System.EventArgs e)
{
if(NewsTitle.Text.Trim().Length > 0)
{
///把需要预览的数据存放到Session中
PreviewNewsDetails newsDetails = new PreviewNewsDetails();
newsDetails.Title = NewsTitle.Text;
newsDetails.Body = NewsBody.Text;
Session[Session.SessionID + "PreviewNews"] = newsDetails;
///打开新的页面,实现预览功能
Response.Write("<script>window.open('../ShowNews.aspx?Operation=preview');</script>");
}
else
{
Response.Write("<script>alert(\"新闻的标题不能为空!\")</script>");
}
}
-
- 修改新闻
新闻修改页面的设计和添加新闻页面的设计是一样的,新闻修改页面(EditNews.aspx)同样也实现了两个功能,一个是修改选中的新闻,另一个是预览修改过的新闻。和添加新闻不同的是,该页面不需要新闻种类参数,而是需要选中新闻的ID。
当页面初始化时,调用函数BindNewsData()绑定选中新闻的具体信息,同时显示在修改页面的输入框中。新闻数据绑定函数的程序代码如下:
private void BindNewsData(int nNewsID)
{
if(nNewsID > 0) ///首先判断新闻ID是否大于0,否则不从数据库取数据
{ ///从数据库取到新闻ID为nNewsID的新闻的信息
SqlConnection myConnection = new SqlConnection(DataBaseDB.ConnectionString);
String cmdText = "SELECT * FROM News WHERE NewsID = '" + nNewsID.ToString() + "'";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
myConnection.Open();
SqlDataReader recn = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
///给新闻标题框和新闻内容框初始化数据
while(recn.Read())
{
NewsTitle.Text = recn["Title"].ToString();
NewsBody.Text = recn["Body"].ToString();
}
recn.Close();
}
}
当修改新闻页面绑定数据以后,用户可以看到两个可以编辑的文本输入框,同时框中显示选择新闻的原始数据。修改新闻和添加新闻一样,首先必须判定新闻的标题和内容是否为空,只有值不为空的时候,才把修改后的结果添加到数据库中。修改功能代码如下:
private void EditNewsBtn_Click(object sender, System.EventArgs e)
{
if(NewsTitle.Text.Trim().Length > 0 && NewsBody.Text.Trim().Length > 0)
{ ///构建数据库连接和修改新闻的SQL语句
SqlConnection myConnection = new SqlConnection(DataBaseDB.ConnectionString);
String cmdText = "UPDATE NEWS SET Title = '" + NewsTitle.Text + "',Body = '" + NewsBody.Text
+ "' WHERE NewsID = '" + nNewsID.ToString() + "'";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
///打开数据库连接并执行修改操作
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
///返回新闻管理页面
Response.Redirect("NewsManage.aspx");
}
else
{
Response.Write("<script>alert(\"新闻的标题不能为空!\")</script>");
}
}
-
- 删除新闻
删除新闻功能主要有页面DeleteNews.aspx实现,它主要删除数据库中过时或多余的新闻数据。系统执行删除操作时执行函数DeleteNews_Click()。该函数删除News表中的某行数据,具体实现的程序代码如下:
private void DeleteNewsBtn_Click(object sender, System.EventArgs e)
{
if(NewsTitle.Text.Trim().Length > 0 && NewsBody.Text.Trim().Length > 0)
{ ///构建数据库连接和删除新闻的SQL语句
SqlConnection myConnection = new SqlConnection(DataBaseDB.ConnectionString);
String cmdText = "DELETE NEWS WHERE NewsID = '" + nNewsID.ToString() + "'";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
///打开数据库连接并执行删除操作
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
///返回新闻管理页面
Response.Redirect("NewsManage.aspx");
}
else
{
Response.Write("<script>alert(\"新闻的标题不能为空!\")</script>");
}
}
作品编号:AN6001
题目:《新闻发布系统》
编程工具:ASP.NET
数据库:SQL Server 2000
价格:200元
AN6001《新闻发布系统》作品包括源程序、任务书、开题报告和论文


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/26952.html