【asp源码栏目提醒】:网学会员--在 asp源码编辑为广大网友搜集整理了:新闻系统-源代码 - 毕业设计绩等信息,祝愿广大网友取得需要的信息,参考学习。
新闻系统
源代码参考一套完套的设计至少包括可以运行源程序论文开题答辩外文以下列出的源代码仅为参考仅是源程序中的部分代码------------------------------------------------------5 新闻系统的主要开发过程5.1 数据库设计 该系统使用 Access 作为应用程序的数据库,建立了有 6 张数据表:Lb_Admin 表用于存储帐户的信息,Lb_Class 表用于存储新闻分类信息,Lb_Links表用于存储友情链接信息 Lb_News 表用于存储新闻内容 Lb_Setup 表用于存储系统设置信息Lb_Skins 表用于存储页面风格。
Lb_News 表与 Lb_Class 表相关联。
在 6 个数据表中,主要介绍一下新闻表和账户表如下:Lb_News 表如表 1 所示: 表 1 新闻表 n_id 为该表主键,n_cid 为所属新闻分类 ID,n_hit 为点击数,n_commend用于判断是否为推荐新闻,n_index 用于判断是否为首页新闻,n_title 为新闻标题,n_date 为发布新闻的日期,n_author 为新闻发布者名,n_content 为新闻内容,n_ispic 用于判断是否为首页滚动图片,n_spic 为首页所滚动图片的存储地址,n_check 用于判断是否为审核新闻值为 0 表示未通过审核,值 1 表示通过审核,n_intro 为新闻简介,n_publisher 为账户类型,如为管理员、审核员或新闻输入员。
Lb_Admin 表如表 2 所示: 表 2 账户表 A_Id 为该表主键,A_Name 为用户名,A_Password 为密码,A_Grade 为用户级别。
5.2 各主要窗体页的图形界面介绍 ◆首页:主要功能是显示最热门、最新和推荐的前 8 条新闻,显示新闻
搜索功能、页面风格设置、新闻分类、滚动新闻图片和网站公告等; ◆新闻详细内容查看页:在首页里点击新闻标题所进入的页面,显示当前所点击新闻的详细内容,新闻标题正中加粗显示,在添加新闻时,根据所编辑的新闻内容对应显示; ◆新闻输入员页面:新闻输入员只具有添加新闻的权限,任何浏览者都可注册成为新闻输入员,但所添加的新闻并不能直接发布到网站上显示,而需经过审核员或管理员审核是否给予通过,这保证了网站内容管理的合理性,并不是随便添加的新闻都能发布; ◆新闻审核员页面:审核员管理页面主要是对新闻进行审核,可对需审核的新闻内容进行查看和编辑,以确定是否授权发布,审核员除审核新闻外,也可添加新闻和管理新闻,所添加的新闻不需审核而可以直接发布,管理新闻包括修改和删除新闻; ◆新闻管理员页面:管理员具有系统的所有权限,除审核员的审核新闻、添加新闻和管理新闻外,还可添加新闻部门和用户。
对用户和新闻部门进行管理,包括修改用户 ID 和密码,删除用户,更改部门名称,删除新闻部门,管理员所添加的新闻也不再需要审核而可以直接发布。
5.3 页面的风格设计 为使该
系统的页面美观多样,在
设计时使用了 8 种样式风格。
为了在页面设计时方便调用,将其存储于数据库的 Lb_Skins(风格样式)表中,各窗体通过调用 style.css 文件来设计界面外观。
CSS 是 Cas
cading Style Sheets(层叠样式表单)的简称,简称样式表,它是一种设计网页样式的技术。
CSS 代码的基本语句结构为:选择符属性名:属性值,选择符可以是 HTML 中任何的标签或自定义标识符,比如 P、DIV、IMG甚至 BODY 都可以作为选择符。
CSS 在 HTML 文档中有三种用法: ◆ 一种是把 CSS 文档放到 ,和“relstylesheet”指连接的元素是一个样式表
文档,“href‘style.css’”指的是需要连接的文件地址。
这种方法非常适宜同时定义多个
文档,能使多个文档同时使用相同的样式,从而减少了大量的冗余代码。
5.4 系统配置5.4.1 Web.config 文件配置
ASP.NET 应用程序的配置功能放在 Web.config 文件中,它包含每一个具体Web 应用程序的配置信息。
在程序运行时,
ASP.
NET 使用分层虚拟目录结构的Web.config 文件提供的配置信息为每个惟一的 URL 资源计算一组配置设置,然后缓存结果配置设置,以供所有页面对资源的请求使用。
Web.config 文件对于访问站点的用户来说是不可见的,而且也是不可访问的,它基于 XML,每个配置文件都包含 XML 标记和子标记的嵌套层次结构。
新闻系统的 Web.config 文件中的配置: 通过键/值对 key 和 value 配置数据库连接的相关信息,将 ACCESS 数据库 lbnews.mdb文件用相对路径的方式设置为字符串MdbPath在
程序代码中进行连接引用。
5.4.2 配置发布主页 首先要创建虚拟目录,新建虚拟目录的步骤如下: ● 打开 IIS(Internet 信息服务) ,在默认网站上右击,在快捷菜单中选择新建—虚拟目录; ● 在弹出的虚拟目录创建向导对话框里点击“下一步”; ● 输入虚拟目录别名; ● 选择网站内容所在目录路径; ● 设置“访问”权限。
在所建虚拟目录上右击,在弹出菜单中选择浏览,或在浏览器里输入相应网址,都可运行浏览程序。
虚拟目录不在目录
列表中显示(也称为 WWW 服务的 ) 要访问虚拟目录,用户必须知道虚拟目录的别名并在浏览器中键“目录浏览”,入 URL。
对于 WWW 服务,也可以在
HTML 页面中创建链接。
发布网站的时候,把程序首页的名字(index.aspx 或 default.aspx)写在 IIS 当中就可以访问了。
5.5 系统部分重要功能及其代码5.5.1 Web 用户控件 该系统中创建了两个 Web 用户控件 top.ascx 和 bottom.ascx,在首页、新闻详细内容查看、新闻分类等页面的 HTML 代码里都进行了引用,调用方式为: Register 指 令 注 册 用 户 控 件 , 同 时 把 属 性 TagName 标 签 名 和 SrcTagPrefix标签前缀添加到 Register 指令中, 属性表示该用户控件相对于父页面的相对地址。
用户控件也是服务器端控件,还必须在用户控件代码中添加Runatserver 属性,用法如下: 其中 top.ascx 用户控件作用是显示首页图片、“首页”文本字体、新闻分类、新闻风格和当前日期,bottom.ascx 用户控件作用是显示底部相关网站信息等。
用户控件是非常易于代码重用的,可以把许多相关功能和用户界面封装在一个用户控件中,然后在任何需要该功能的地方重用此控件。
5.5.2 通用类代码 在所有相关页面显示文件和 Web 用户控件的代码隐藏文件.aspx.cs 或.ascx.cs中,通过对数据访问类的引用以创建类实例方式,调用数据访问类里的相应函数完成相关功能,如建立数据库连接、打开和关闭数据库、对数据库执行
查询、插入、删除和更新操作、页面登陆检验等。
此处列举 Conn 类数据访问类中主要函数的
源码:public class Conn // 建立数据库连接字符串 public OleDbConnection Lb_Connnew OleDbConnectionstrConn public static string strConn //通过创建一个属性来连接数据库 get //使用 get 方法返回此属性的值 StringBuilder strResult new StringBuilder strResult.AppendProvider Microsoft.Jet.OLEDB.4.0 strResult.Append strResult.AppendData Source strResult.AppendHttpContext.Current.Server.MapPath. //HttpContext 应用程序上下文类,Current 属性表示进程中当前请 //求的上下文,MapPath方法表示返回与 Web 服务器上的指定虚 //拟路径相对应的物理文件路径,此处作用是创建数据库文件的虚拟路径 strResult.Append strResult.AppendConfigurationSettings.AppSettingsMdbPath // 从 配 置 文 件 中 取 到 数 据 库 连 接 字 符 串 , “MdbPath” 为Web.config //文件中的键/值对所设置的 key 值 return strResult.ToString //返回字符串类型 public OleDbDataReader ExecuteOleDbDataReaderstring strSql //此函数表示从数据库读取数据时以只进只读的行流的方式进行 OleDbCommand cmdnew OleDbCommandstrSqlLb_Conn OleDbDataReader rdcmd.ExecuteReader // 通 过 调 用 对 象 OleDbCommand 的 ExecuteReader 方 法 创 建 //OleDbDataReader 对象 return rd public DataSet CreateDataSetstring strSqlstring tableName OleDbDataAdapter danew OleDbDataAdapterstrSqlLb_Conn //创建 DataAdapter 类实例,可用于填充 DataSet 对象和检索、更新数据 DataSet dstnew DataSet da.FilldsttableName //填充 DataSet数据集中的一个表 return dst public int ExecuteSqlstring strSql OleDbCommand cmd2new OleDbCommandstrSqlLb_Conn int resultcmd2.ExecuteNonQuery //对数据库执行插入、删除和更新等操作,返回影响数据库记录的行数 return result 5.5.3 添加发布新闻 添加发布新闻在该系统中显然起着很关键的作用,在添加新闻管理页面里,通过单击“添加”按钮执行新闻的添加,但能不能直接发布,还要根据权限来判断,“添加”按钮的单击事件主要程序如下: Conn ds1new Conn //调用数据访问类 ds1.DBopen //打开数据库 string titleLb_Title.Value.ToString //新闻标题 string ContentLbNewsContent.Value.ToString.Replace // 新 闻内容 string AuthorLb_Author.Value.ToString //新闻作者 string TitlePicLb_TitlePic.Value.ToString //是否首页滚动图片 string IntroLbNews_Intro.Text.ToString.Replacern.Replace //新闻简介 string Lb_Grade//用户级别 int lb_check //判断新闻是否需要审核,1:不需要审核,0:需要审核 try //捕获异常范围 if Lb_Grade1 //用户级别 1 为新闻输入员 lb_check0 //需要审核 else //审核员或管理员 lb_check1 //不需要审核 int resultds1.ExecuteSqlinsert intoLb_Newsn_cidn_commendn_indexn_ispicn_titlen_spicn_authorn_contentn_publishern_intron_checkvaluesLb_ClassidLb_IsCommendLb_IsIndexLb_IsPictitleTitlePicAuthorContentPublisherIntrolb_check//将所添加的新闻标题、内容、作者和来源部门等插入到数据表 Lb_News 中 if result0 //数据添加到数据库中成功 if Lb_Grade1 ds1.alert 添 加 成 功 需 等 待 管 理 员 审 核admin_articleadd.aspx //输入员添加新闻的话弹出对话框提示需审核, 并重置当前 添加页面 else ds1.alert添加成功admin_articleadd.aspx //审核员或管理员添加的话就直接发布到网站上, 并重置当前添加页面 else //添加不成功 Response.Write 添加新闻失败 catchSystem.Data.OleDb.OleDbException ex Response.Write ex.ToString //以上操作中如有异常发生则捕捉 finally ds1.DBclose //关闭数据库连接5.5.4 用户注册 该系统的内容是需要靠校园众多部门众多用户来丰富充实的,而用户注册功能提供了给用户注册和发布新闻的作用。
在首页里只需点击注册按钮即可
注册,注册页面里注册按钮的单击事件处理程序如下: Conn ds1new Conn //调用数据访问类 ds1.DBopen string nameuserName.Text.Trim //用户名 stringpassSystem.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFilepassWord.Text.Trim MD5 //用户密码//通过 HashPass
wordForStoringInConfigFile方法实现 MD5 加密解密算法 string strSqlselect from Lb_Admin where A_Namename ds1.DBopen OleDbDataReader rdds1.ExecuteOleDbDataReaderstrSql if rd.Readtrue //读取 DataReader 中下一条记录时有相同记录 ds1.alert已存在此用户名请用其它reg.aspx rd.Close else rd.Close int resultds1.ExecuteSqlinsert intoLb_AdminA_NameA_Passwordvaluesnamepass ifresult0 //添加数据成功 ds1.alert注册成功请
登陆index.aspx else ds1.alert注册失败reg.aspx ds1.DBclose 在 注 册 页 面 中 用 到 了 RequiredFieldValidator ( 非 空 )、RegularExpressionValidator(正则表达式)和 CompareValidator(比较)验证控件,分别用于文本输入框的非空验证、由正则表达式来验证用户的输入值是否正确和验证两个输入框的值是否相等。
服务器端验证控件是
ASP.NET 控件中新产生的一种验证控件,可以在客户端直接验证用户的输入,但控件必须包含“runatserver”属性。
正常情况下验证控件是不可见的,当用户输入数据错误时它们才可见。