ASP.NET校园新闻发布系统的设计与实现

摘   要

校园新闻发布系统是在学校区域内为学校教育提供资源共享、信息交流和协同工作的计算机网络信息系统。随着网络技术的发展和Internet应用的普及,互联网已成为人们获取信息的重要来源。由于现在各大学校的教师和学生对信息的需求越来越高,校园信息对提高学校的教学质量、提高学生的学习质量等等有很重要的作用。

本毕业设计主要采用了B/S设计模式,基于ASP.NET+SQL Server2000技术开发了一个校园新闻发布系统。本校园新闻发布系统实现了如下功能:1 新闻浏览和搜索;2 系统管理员对系统和用户的管理;3 新闻管理员发布新闻。本系统其功能灵活并易于使用,能够实现网站新闻的动态管理,使得对新闻的管理更加及时,高效。本毕业论文将对该系统的开发过程和功能进行详细的阐述。

  关键词: 新闻发布;新闻浏览; B/S; ADO.NET数据访问; ASP.NET

3.1 系统功能需求

本系统的目的是实现校园新闻发布系统的基本功能。

本新闻发布系统提供了不同类型新闻(如校园新闻、体育新闻和校园之家等),满足不同用户需求;系统将用户分为:普通用户,系统管理员和新闻管理员。

普通用户能在本系统中进行新闻浏览,阅读,新闻搜索。每条新闻的标题被做成一个链接,用户点击它们就能跳转页面进行新闻阅读;新闻阅读页面,每条新闻的详细信息将被取出,包括内容、标题等;用户能根据自己的需要搜索新闻,如可以通过新闻标题或新闻内容对新闻进行搜索,这样可以快速地找到符合条件的新闻,并输出搜索结果;用户能对新闻进行被评论(允许匿名评论)。

系统管理员可以进行新闻分类管理、添加新闻、修改新闻、新闻审核和删除新闻,同时系统管理员能完成用户管理如包括系统用户管理、添加用户和更改账号。

新闻管理员拥有添加新闻和更改账号的权限。根据用户不同,给予不同权限,这样加强系统的管理,同时加强系统的安全性。

4.1总体设计

本系统中,系统的功能主要分为三个功能模块:新闻浏览和搜索模块;系统管理员模块;新闻管理员模块。总体功能设计图如下,如图4-1。

图4-1 总体功能设计图

6.1 系统登陆首页

 这是本系统的主页面,普通用户和管理员均能登陆,如图6-1。

图6-1 普通用户和管理员首页登陆

6.2 新闻浏览

  普通用户可以通过点击导航栏上的校园新闻进行初步的新闻浏览,在这里普通用户能浏览到校园新闻初始的界面。如图6-2。

图6-2 新闻浏览

6.3 新闻搜索

接下来,普通用户可以点击搜索新闻按钮,进入新闻搜索页面。这里普通用户可以通过新闻内容或新闻题目进行新闻的搜索。以助学中心为标题,点击搜索,这时搜索结果会出该新闻:助学中心。如图6-3

图6-3 新闻搜索

新闻搜索核心代码: 

private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)

              {

            if(Page.IsValid)

                     {                         

                            if(search1.SelectedIndex==0) //搜索标题

                            {                                

       SqlConnection1=newSqlConnection(ConfigurationSettings.AppSettings["dsn"]);    

                                   SqlDataAdapter1 = new SqlDataAdapter();

                                   SqlDataAdapter1.SelectCommand=new SqlCommand("sp_searchCkArticleByTitle",SqlConnection1);

       SqlDataAdapter1.SelectCommand.CommandType=CommandType.StoredProcedure ;

                                   SqlDataAdapter1.SelectCommand.Parameters.Add("@title",SqlDbType.NVarChar ,500);

                                   SqlDataAdapter1.SelectCommand.Parameters["@title"].Value=keyword.Text ;

                                   bindgrid();           

                            }

                            else                                           //搜索内容

                            {                  

       SqlConnection1=newSqlConnection(ConfigurationSettings.AppSettings["dsn"]);    

       SqlDataAdapter1 = new SqlDataAdapter();

SqlDataAdapter1.SelectCommand=newSqlCommand("sp_searchCkArticleByContent",SqlConnection1);

       SqlDataAdapter1.SelectCommand.CommandType=CommandType.StoredProcedure ;

       SqlDataAdapter1.SelectCommand.Parameters.Add("@content",SqlDbType.NText);

       SqlDataAdapter1.SelectCommand.Parameters["@content"].Value=keyword.Text.Trim() ;                                          bindgrid();    

                            }                  

                     }

              }

6.4 系统管理员

这是管理员登陆界面,管理员通过用户名,密码的输入,登陆到系统管理后台,管理员分为系统管理员和新闻管理员。显示系统管理员所拥有的管理权限,接下来系统管理员就能执行自己所拥有的权限。如图6-4

图6-4系统管理员权限

6.5 进入分类管理

系统管理员进入此模块时,能对新闻分类进行管理。如图所示系统管理员能添加分类,如校园新闻,学术交流,校园广播,教师信息,学生工作处等等,并且等对分类新闻进行修改和删除。如图6-5

图6-5 添加新闻分类

添加新闻分类核心代码:

private void Submit_Click(object sender, System.EventArgs e)

            {

                   if(Page.IsValid)

                   {

                                 SqlConnection1 = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);

            SqlCommand1=new SqlCommand("sp_selFclass",SqlConnection1);

            SqlCommand1.CommandType=CommandType.StoredProcedure;

            SqlCommand1.Parameters.Add("@classname",SqlDbType.Char,200);

            SqlCommand1.Parameters["@classname"].Value=ClassName.Text.Trim();  

                          try

                          {

                                 SqlConnection1.Open();

                                 SqlDataReader1=SqlCommand1.ExecuteReader();    

                                 if(SqlDataReader1.Read()==true)  

                                 {

                                        myLabel.Text="已有此分类,请重新输入名字!";

                                        SqlDataReader1.Close();

                                 }

                                 else

                                 {

                                        SqlDataReader1.Close();

                                        SqlCommand1=new SqlCommand("sp_addFclass",SqlConnection1);

      SqlCommand1.CommandType=CommandType.StoredProcedure;

      SqlCommand1.Parameters.Add("@classname",SqlDbType.Char,200);

   SqlCommand1.Parameters["@classname"].Value=ClassName.Text.Trim();                  

                                        SqlCommand1.ExecuteNonQuery() ;                           

                                        myLabel.Text="添加分类成功!";                                

                                 }

                          }

                          catch (SqlException e1)

                          {

                                 myLabel.Text ="数据库操作错误:"+e1.Message;

                          }

6.6 添加新闻

系统管理员选择新闻类型后,就能对新闻进行详细的添加,如新闻标题,新闻属性,新闻内容,新闻介绍,相关新闻,作者。如图6-6

图6-6 添加新闻

添加新闻核心代码:

     private void addClassNum()

              {

               SqlConnection1= new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);             SqlCommand1=new SqlCommand("sp_addClassNum",SqlConnection1);

              SqlCommand1.CommandType=CommandType.StoredProcedure;

                SqlCommand1.Parameters.Add(newSqlParameter("@className",SqlDbType.Char,200));

                           SqlCommand1.Parameters["@className"].Value=ClassName.SelectedItem.Text.Trim();

              string username=(string)Session["username"];

              try

              {

                     SqlConnection1.Open();

                     SqlCommand1.ExecuteNonQuery();                                                               

              }

              catch (SqlException e1)

              {

                     myLabel.Text ="数据库操作错误:"+e1.Message;

              }

              SqlConnection1.Close();

       }

              private void addArticle()                                         

       {

              int hl=0;

              int HL=0;             

              if(Headline.Checked)                                             

              {

                     hl=1;

              }

              else 

              {

                     hl=0;

              }

              if(HighLight.Checked)                                           

              {

                     HL=1;

              }

              else

              {

                     HL=0;

if(ul.Trim()=="系统管理员")

                   {

              SqlCommand1.Parameters["@checkup"].Value = 1;

                   }

                 else

                 {

              SqlCommand1.Parameters["@checkup"].Value = (int)Session["addnchk"];

                 }             

               try

                  {

              SqlConnection1.Open();

              int d = SqlCommand1.ExecuteNonQuery();

                     if(d>0)

                     {

                            myLabel.Text="添加新闻成功";

                     }

                     else

                     {

                            myLabel.Text="添加新闻错误";

                     }                                       

              }

                    

6.7 新闻管理

系统管理员在此功能模块中对添加的新闻(如校园新闻)进行删除。如可以对图中的新闻—省市领导亲临我校视察工作进行删除。如图6-7

图6-7 新闻管理

新闻管理核心代码:

     if(c.Trim()=="系统管理员"||(int)Session["chgnews"]==1)

                                                                                   

       SqlConnection1=newSqlConnection(ConfigurationSettings.AppSettings["dsn"]);

       SqlCommand1=new SqlCommand("sp_delClassNum",SqlConnection1);

       SqlCommand1.CommandType=CommandType.StoredProcedure;

       SqlCommand1.Parameters.Add("@className",SqlDbType.Char);

       SqlCommand1.Parameters["@className"].Value = e.Item.Cells[2].Text.Trim();

          try                      

           {                                                

       SqlConnection1.Open();

       SqlCommand1.ExecuteNonQuery();                                                              

           }                                                       

       catch (SqlException e1)                                            

           {

       myLabel.Text ="数据库操作错误:"+e1.Message;                                 

           }                                                       

       SqlConnection1.Close();                                           

       SqlCommand1=new SqlCommand("sp_delArticle",SqlConnection1);

       SqlCommand1.CommandType=CommandType.StoredProcedure;

       SqlCommand1.Parameters.Add(new SqlParameter("@articleid",SqlDbType.BigInt));

       SqlCommand1.Parameters["@articleid"].Value = MyDataGrid.DataKeys[e.Item.ItemIndex];

       try

        {                                                            

       SqlConnection1.Open();

       int r=SqlCommand1.ExecuteNonQuery();

       if(r>0)                                                             

         {                                                                 

          myLabel.Text="删除成功!";                                                                        

         }

        }

       else

        {

          myLabel.Text="删除错误!";

        }                                                            

                                                                                           

6.8 新闻转移

系统管理员能对新闻类型进行转移,如从分类中的校园新闻转移到学术交流。如图6-8

图6-8 新闻转移

新闻转移核心代码:

SqlCommand1=new SqlCommand("sp_updateArticleByClass",SqlConnection1);

        SqlCommand1.CommandType=CommandType.StoredProcedure;

    SqlCommand1.Parameters.Add("@className",SqlDbType.Char,200);

        SqlCommand1.Parameters["@className"].Value = name2;

        SqlCommand1.Parameters.Add("@oldclassname",SqlDbType.Char,200);

        SqlCommand1.Parameters["@oldclassname"].Value = name1;

                     try

                            {

                                   SqlConnection1.Open();

                                   int i=SqlCommand1.ExecuteNonQuery();

                                   if(i>0)

                                   {

                                          myLabel.Text="转移成功";

                                   }                                       

                                   }

                                   catch (SqlException e1)

                                   {

                                          myLabel.Text ="数据库操作错误:"+e1.Message;

                                   }

                                   finally

                                   {

                                          SqlConnection1.Close();             

                                   }            

6.9 添加用户

系统管理员可以添加用户,如新闻管理员或系统管理员。如图6-9。

图6-9 添加用户

添加用户核心代码:

     private void Submit_Click(object sender, System.EventArgs e)

                  {

                     if(Page.IsValid )

                     {

                     SqlConnection1 = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);

                            SqlCommand1=new SqlCommand("sp_addAdminValidate",SqlConnection1);

                            SqlCommand1.CommandType=CommandType.StoredProcedure;

                            SqlCommand1.Parameters.Add("@username",SqlDbType.Char,40);

                            SqlCommand1.Parameters["@username"].Value =Username1.Text.Trim();

                            try

                            {

                                   SqlConnection1.Open();

                                   SqlDataReader1=SqlCommand1.ExecuteReader();    

                                   if(SqlDataReader1.Read()==true)  

                                   {

                                          myLabel.Text="已有此管理员,请重新输入姓名!!" ;

                                          SqlDataReader1.Close();

                                   }

                                   else

                                   {

                                          SqlDataReader1.Close();

                     SqlCommand1=new SqlCommand("sp_addAdmin",SqlConnection1);

                     SqlCommand1.CommandType=CommandType.StoredProcedure;

                     SqlCommand1.Parameters.Add("@username", SqlDbType.Char,40);

                     SqlCommand1.Parameters["@username"].Value=Username1.Text.Trim();

                                          SqlCommand1.Parameters.Add("@password",SqlDbType.Char,40);

                     SqlCommand1.Parameters["@password"].Value=Password1.Text.Trim();

                     SqlCommand1.Parameters.Add("@userclass",SqlDbType.Char,20);

                                SqlCommand1.Parameters["@userclass"].ValueUserClass1.SelectedItem.Text.Trim();

                                                                      SqlCommand1.Parameters.Add("@remark",SqlDbType.NChar,200);

                     SqlCommand1.Parameters["@remark"].Value = Remarks.Text.Trim();

                                          try

                                          {

                                                 int i=SqlCommand1.ExecuteNonQuery();

                                                 if(i>0)

                                                 {

                                                        myLabel.Text="添加管理员成功!";

                                                 }                                       

                                          }

                                          catch (SqlException e1)

                                          {

                                                 myLabel.Text ="数据库操作错误:"+e1.Message;

                                          }

6.10 用户管理

系统管理员能对新添加的用户进行管理,如删除,在这里我们必须注意新闻管理员没有此权限,最初的系统管理员是不能被删除的。如图6-10,当删除系统管理员admin是,会提示删除错误。

图6-10 用户管理

用户管理核心代码:

public string show(object a,object b)

  {   string d=a.ToString();

String c=a+"(<ahref=admin_popedom.aspx?username="+b+">修改权限</a></font>)";

     if(d.Trim()=="系统管理员")

  {                                                        

     eturn d;

  }

     else

  {

     return c;

   }

                                                            

try

{

SqlConnection1. Open();

Int i=SqlCommand1.ExecuteNonQuery();

if(i>0)

{

myLabel.Text="删除成功";

MyDataGrid.EditItemIndex = -1;             

(MyDataGrid.CurrentPageIndex>0)

{

MyDataGrid.CurrentPageIndex= MyDataGrid.CurrentPageIndex-1;

}

else

{

myLabel.Text="删除错误!";

MyDataGrid.EditItemIndex = -1;       

}

6.11 修改账号

系统管理员或新闻管理员都拥有此权限。系统管理员或新闻管理员可随时更改他们的账号名和密码,这样更能提高系统的安全性,防止不法分子盗取账号名和密码对系统进行破坏。如图6-11

                                                 图6-11 账号修改

6.12 权限管理

系统管理员能对自己和新闻管理员的管理权限进行选择,如添加新闻,审核新闻,修改新闻等等。如图6-12

图6-12 管理员权限管理

权限管理核心代码:

 if(dr["popedom"]!=null)

                     {

                            string popedom=(string)dr["popedom"];     

                            int i=popedom.Length;

                            string df=popedom.Replace("addnews","1");

                            int j=df.Length ;

                            if(i!=j)

                            {

                                   addNew.Checked=true;

                            }                         

                            i=popedom.Length;                

                            df=popedom.Replace("addnchk","1");

                            j=df.Length ;

                            if(i!=j)

                            {

                                   addNchk.Checked=true;

                            }                         

                            i=popedom.Length;                     

                            df=popedom.Replace("chgnews","1");

                            j=df.Length ;

                            if(i!=j)

                            {

                                   chgnews.Checked=true;

                            }                         

                            i=popedom.Length;                      

                            df=popedom.Replace("chknews","1");

                            j=df.Length ;

                            if(i!=j)

                            {

                                   chknews.Checked=true;

                            }                         

                            i=popedom.Length;                   

                            df=popedom.Replace("remark","1");

                            j=df.Length ;

                            if(i!=j)

                            {

                                   remark.Checked=true;

                            }

6.13 新闻管理员

这是新闻管理员管理权限页面,新闻管理员拥有添加新闻,更改账号的权限。如图6-13。在这必须指出,新闻管理员拥有的权限由系统管理员在权限管理中确定。

图6-13 新闻管理员权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/682097.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么解决端口被占用

目录 一、引言 二、解决方法 一、引言 最近用vscode写网页&#xff0c;老是遇见端口被占用&#xff0c;报错如下&#xff1a; listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 二、解决方法 1.换…

oracle 数据库找到UDUMP的文件名称

oracle 数据库找到UDUMP的文件名称 select p.value||\||i.instance_name||_ora_||spid||.trc as "trace_file_name" from v$parameter p ,v$process pro, v$session s, (select sid from v$mystat where rownum1) m, v$instance i where lower(p.name)user_dump_…

设计模式(2)创造型设计模式

创建型模式 创建型模式1.工厂模式1.1 抽象工厂模式&#xff08;Abstract factory&#xff09;1.2 工厂方法模式&#xff08;Factory Method&#xff09;1.3 简单工厂模式&#xff08;Simple Factory&#xff09; 2. 建造者模式&#xff08;Builder&#xff09;3. 原型模式&…

【数据库原理及应用】期末复习汇总高校期末真题试卷03

试卷 一、选择题 1 数据库中存储的基本对象是_____。 A 数字 B 记录 C 元组 D 数据 2 下列不属于数据库管理系统主要功能的是_____。 A 数据定义 B 数据组织、存储和管理 C 数据模型转化 D 数据操纵 3 下列不属于数据模型要素的是______。 A 数据结构 B 数据字典 C 数据操作 D…

了解tensorflow.js

1、浏览器中进行机器学习的优势 浏览器中进行机器学习&#xff0c;相对比与服务器端来讲&#xff0c;将拥有以下四大优势&#xff1a; 不需要安装软件或驱动&#xff08;打开浏览器即可使用&#xff09;&#xff1b;可以通过浏览器进行更加方便的人机交互&#xff1b;可以通过…

今天又发现一个有意思的问题:SQL Server安装过程中下载报错,证明GPT是可以解决问题的

我们在安装数据库的时候&#xff0c;都会有报错问题&#xff0c;无论是Oracle、SQL Server、还是MySQL&#xff0c;都会遇到各种各样的报错&#xff0c;这归根到底还是因为电脑环境的不同&#xff0c;和用户安装的时候&#xff0c;操作习惯的不一样导致的问题。今天的问题是&am…

C++语言·string类

1. 为什么有string类 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数(strcpy,strcat)&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP(Object Oriented Programming面向对…

加密“发射台”:未来通信的新模式

随着区块链技术的飞速发展&#xff0c;加密“发射台”作为一种新兴的安全通信工具&#xff0c;正逐渐受到关注。本文将从专业角度深入探讨加密“发射台”的概念、原理、应用场景及其未来发展趋势&#xff0c;以期为读者提供有深度和逻辑性的思考。 一、加密“发射台”的概念与…

Python turtle库 实现 随机彩色文字平面批量输出

# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import turtle import random import turtle as t t.colormode(255) turtle.bgcolor("white") h255 l50#字号 m60#间隔 n500 t.penup() turtle.hide…

【C++ | 语句】条件语句(if、switch)、循环语句(while、do while、for、范围for)、跳转语句、try语句块和异常处理

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-05-02 2…

C++ 继承篇

面向对象语言的三大特性&#xff1a;封装&#xff0c;继承和多态 根据目前学到的知识&#xff0c;对于封装的理解&#xff0c;大致有两层&#xff1a; 将数据和方法封装&#xff0c;不想让外面看到用private/protected修饰&#xff0c;想让外面看到用public修饰类型的行为不满…

C语言自定义类型——枚举

枚举 枚举定义枚举 与 #define使用写一个简易计算器的程序。 枚举定义 格式&#xff1a; enum name(枚举什么类型) {//数据 ... };枚举&#xff0c;顾名思义一 一 列举。 在生活当中有很多可以列举的东西。 如&#xff1a; //电脑桌面上的软件 enum App {QQ ,WeChat,CCtalk,…