网络新闻发布系统

上传人:尘*** 文档编号:111802105 上传时间:2022-06-21 格式:DOCX 页数:84 大小:1.43MB
返回 下载 相关 举报
网络新闻发布系统_第1页
第1页 / 共84页
网络新闻发布系统_第2页
第2页 / 共84页
网络新闻发布系统_第3页
第3页 / 共84页
点击查看更多>>
资源描述
编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第84页 共84页项目5 建立网站新闻发布系统5目标:5任务1 发布新闻55.1.1 任务描述55.1.2 任务分析65.1.3 相关知识61、建立静态类6(1)对象分析6(2)属性分析6(3)定义新闻类7(4)建立新闻类72、建立新闻数据表83、建立添加新闻的存储过程94、建立添加新闻的数据访问层105、建立添加新闻操作的业务逻辑层116、建立新闻分类的数据访问层117、建立新闻分类的业务逻辑层138、发布新闻操作的界面13(1)发布新闻的界面设计13(2)发布新闻的后台代码165-1-4 任务实施195-1-5 任务拓展20任务2 配置和应用FCKEditor编辑器205.2.1 任务描述205.2.2 任务分析205.2.3 相关知识201、配置FCKEditor编辑器20(1)FCKEditor简介20(2)下载FCKeditor21(3)引用FredCK.FCKeditorV2.dll文件21(4)把FCKeditor控件添加到Visual Studio 2008的工具箱中21(5)在WebConfig配置FCKeditor所需的参数22(6)FCKeditor详细的设置22(7)FCKeditor的精简232、应用FCKEditor编辑器24(1)把FCKEditor编辑器控件添加到网页中24(2)读取FCKeditor编辑器中的内容255.2.4 任务实施255.2.5 任务拓展26任务3 显示新闻内容265.3.1 任务描述265.3.2 任务分析265.3.3 相关知识261、新建读取新闻的存储过程262、在数据访问层添加读取新闻的方法273、在业务逻辑层添加读取新闻的方法294、新建显示新闻列表的网页29(1)建立新闻列表页29(2)新闻列表页面规划29(3)新闻列表页面代码31(4)新闻列表的后台代码34(5)测试新闻列表页的浏览效果345、新建显示新闻内容的网页35(1)新建显示新闻内容的网页,并设计该页的布局35(2)设计显示新闻的样式35(3)设计最清晰的动态样式36(4)显示新闻网页的具体代码36(5)显示新闻内容的后台代码37(6)显示结果386、分页显示新闻内容39(1)分页新闻显示的必要性39(2)修改FCKeditor的分页功能39(3)新建按设定字符串分页的函数40(4)修改显示新闻的后台代码41(5)最终显示的分页效果417、应用搜索引擎的排名规则41(1)编写搜索引擎最关注的内容41(2)新建一个网站配置的简单对象41(3)新建网站配置数据表42(4)新建读取网站配置的存储过程42(5)新建读取网站配置的数据访问层对象42(5)新建读取网站配置的业务逻辑层对象43(6)去HTML标记函数44(7)截取固定长度的字符串函数45(8)网页标题、关键字和描述的构成45(9)提示搜索引擎搜索该页455.3.4 任务实施465.3.5 任务拓展47任务4 修改和删除新闻475.4.1 任务描述475.4.2 任务分析475.4.3 相关知识475.4.4 任务实施475.4.5 任务拓展47任务5 静态显示新闻475.5.1 任务描述485.5.2 任务分析485.5.3 相关知识481、把指定动态网页的内容全部读取到内存48(1)取得动态网页的绝对网址48(2)下载指定动态网页的内容482、打开一个文本文件493、把内存中的数据写入到打开的文件494、什么时候把动态发布的新闻静态化505、修改添加新闻的网页,在添加新闻时生成静态网页505.5.4 任务实施515.5.5 任务拓展51任务6 应用jQuery添加动态样式515.6.1 任务描述515.6.2 任务分析515.6.3 相关知识511、jQuery简介、下载与引用512、jQuery选择器52(1)最简单的jQuery应用52(2)定义选中新闻内容的jQuery选择器53(3)设计选定对象应用的样式533、jQuery的事件处理53(1)为特定元素应用事件53(2)jQuery中的ready事件54(3)鼠标悬停事件544、jQuery的事件处理添加到哪里最合适545、应用jQuery后的效果555.6.4 任务实施555.6.5 任务拓展56任务7 利用Ajax更新静态网页的点击次数身565.7.1 任务描述565.7.2 任务分析565.7.3 相关知识561、Ajax简介562、新建更新浏览次数的动态网页573、XMLHttpRequest对象57(1)XMLHttpRequest对象简介57(2)创建XMLHttpRequest对象584、建立要连接的URL585、打开到服务器的连接596、定义回调函数597、发出请求618、测试运行效果615.7.4 任务实施625.7.5 任务拓展62任务8 在新闻页插入广告625.8.1 任务描述625.8.2 任务分析625.8.3 相关知识621、建立随机读取一个产品的存储过程622、建立读取随机产品信息的数据访问层633、建立读取随机产品信息的业务逻辑层634、新建一个生成产品广告的方法645、修改显示新闻的后台代码646、测试广告效果645.8.4 任务实施655.8.5 任务拓展65任务9 给新闻页添加热点聚焦655.9.1 任务描述655.9.2 任务分析655.9.3 相关知识661、编写自定义控件662、动态更新热点聚焦数据72(1)定义热点聚焦的XML数据源文件72(2)新建管理热点聚焦数据源的网页733、把热点聚焦控件添加到显示新闻的网页774、建立用户控件775、将热点聚焦用户控件添加到显示新闻的网页中786、热点聚焦控件的显示效果795.9.4 任务实施795.9.5 任务拓展79小结79项目5 建立网站新闻发布系统信息发布是网络营销的发动机。左传襄公二十五年“仲尼曰:言以足志,文以足言。不言,谁知其志?言之无文,行而不远。”既强调了宣传的重要也强调了内容的重要。在“酒香也怕巷子深”的时代,不言,谁知你是谁?不言,谁知你有什么产品?必须宣传企业、产品与服务,宣传才能提高暴光率,宣传才能保持你与顾客的接触率。买东西,有人只买贵的,不买对的;有人只买对的,不买贵的;其实都只能买他知道的产品,根本不可能买不知道的产品。目前,在产能过盛,同质化严重的市场上,不论你的产品力多强,你不去宣传,都没戏。只有想办法把产品的利益传播到顾客的心里,让利益占领顾客的心智,营销才能成功。怎么才能让利益占领顾客的心智呢?就是信息发布。因此,信息发布是网络营销的发动机。发布独特信息才能有好的搜索引擎排名。有网站而没有好的搜索引擎排名,就不能有效开展电子商务。甚至可以说没有好的排名就无商可务。现在的网站多如牛毛,对于非知名网站,用户主要依靠搜索引擎和其他网站上的链接来访问你的网站,而非依靠域名。不发布独特信息,就不会有好的搜索引擎排名,没有好的搜索引擎排名你的网站做得再华丽,也不会有人找到,用户找不到你的网站就不可能形成销售。很多网站已经意识到这一点了,发布了大量的信息,但信息不是自己写的,基本全是转发的,没有自己的特点,没有独特性。目前的搜索引擎都有一定的智能,能够区分信息是不是转发的,转发的信息,对于搜索引擎排名有一定的帮助,但帮助不大。因此,发布独特的信息很重要。丰富的信息能带来不同类型的客户。发布信息不仅要发布与企业有关的信息、与产品有关的信息、与销售有关的信息,更重要的是要发布与用户有关的信息,用户搜索他感兴趣的信息时,搜索到你的网站/网页,他看自己感兴趣的信息时,同时也看到了你的网站与商品,如果他感觉你的网站不错,产品也好,当然就会购买。因此,不仅发布信息很重要,而且不能把网站的信息发布限定的范围太窄,你的客户感兴趣的信息都可以大量发布。要大量发布信息,没有一个好的信息发布系统,一是费时费力,二是各个网页风格迥异,带给用户的感受很不好,他就会产生这样的感觉,你们网页就是这种水平,你们的产品也好不到哪去,用户看到你的产品他也不会购买你的产品。这也是造成那些相信只要有钱做广告就能做好营销的企业,经常出现广告点击量高而销售额低的尴尬现象的重要原因。古语讲:“行之善者,在所能为。” 建立网站新闻发布系统有着重要意义,在本项目中研究如何才能做好信息发布系统。目标:(1)建立一个让用户可以方便地发布新闻的系统(包括发布/修改/删除);(2)建立可以让浏览者可以愉快阅读的新闻显示页面;(3)通过前两项内容学习、实践,让读者掌握相关ASP.NET知识,学会基于三层架构ASP.NET网站开发;任务1 发布新闻5.1.1 任务描述新闻发布系统是企业营销网站的一个重要子系统,新闻发布是一个网站最基本、也是最重要的工作。在这一任务中实现新闻发布系统中的新闻发布功能。5.1.2 任务分析如项目2中图XXX所示,新闻发布系统是基于三层架构进行开发的,基于三层架构建立进行项目开发的基本过程如下:确定对象建立实体类建立数据表建立数据访问类建立业务逻辑类建立用户界面建立后台代码最后测试运行效果。在这一任务中,按基于三层架构进行项目开发的基本过程,逐一完成新闻发布系统各个模块的开发,最终实现写成新闻发布功能。5.1.3 相关知识一个系统在编码前,都要经过分析与设计两个步骤。在分析阶段,一般抛开具体技术,首先抽象出类及其属性。1、建立静态类(1)对象分析在企业营销网站项目中新闻发布是一个很简单的用例,从新闻发布用例中首先识别对象,然后提取出类。新闻发布的实体类是新闻类,因为新闻很多,进行分类管理会更加方便,如把新闻分为企业新闻、服务条款、专业知识、常见问题等,所以还需要一个新闻分类对象。(2)属性分析属性是用来描述类和对象的特性的。一个属性是一个数据项(状态信息),类中对象都有相应的值(状态)。在面向对象分析中,“属性”用来反映问题域和系统的任务;属性能帮助我们更深入、更具体的认识类和对象和结构,换句话说,属性能为“类和对象”以及“结构”提供更多的细节。选择属性的过程包括分析和选择两步。一般步骤是:首先,在需求陈述中找出属性或通过分析找出属性。这些属性必须是问题域中对象的基本性质,而且在目标系统中是必要的。也就是说,只考虑与目标系统相关的属性,不考虑超出目标系统范围的属性。最后,恰当的给属性命名。按照如上原则,企业营销网站系统中新闻分类的属性有编号、分类名称。新闻类的属性有编号、新闻分类、标题、来源、作者、发布时间、内容、浏览次数等。描述属性的语法格式为:可见性 属性名 类型名 = 初值 性质串在类图中公有类型用“+”表示,私有类型用“”表示,把它们标识在属性名称的左侧。在分析阶段,不需要按照某种编程语言设计,也不需要设计具体细节。绘制分析阶段的实体对象图主要是用来与客户交流的,并为下一步的设计打下基础。新闻分类实体对象与新闻实体对象如图5-1-1所示。图5-1-1 新闻分类与新闻的类图(3)定义新闻类根据分析材料与技术平台,把自定义的实体类转化成系统类。本实例网站是基于C#的ASP.NET网站,如图5-1-2所示,因为C#是一种很新的语言,一些UML分析工具中可能没有C#的数据类型,在实际设计时有一定的不便。图5-1-2新闻分类与新闻的类图(4)建立新闻类根据系统类建立一个真实的类。右键单击Model项目类库,选择“新建项”,如图5-1-3所示,选择类模板,输入文件名NewsClass.cs,如图5-1-4所示。 图5-1-3 添加新项 图5-1-4 新建NewsClass.cs类文件在新建的NewsClass.cs文件中,输入NewsClass类代码。Model项目类库中的类是实体类,只有字段与属性,没有方法。因此,只需要为NewsClass类定义字段和属性。在.NET Framework 3.5中新增了自动属性,不需要定义字段变量,只需要简单地定义属性。NewsClass类的定义代码如下:namespace Model public class NewsClass public int ClassID get; set; public string ClassName get; set; 按照同样的方法,在Model项目类库中建立News.cs类文件,在新建的News.cs类文件中,输入News类代码,News类定义代码如下。using System;namespace Model public class News public int ID get; set; public NewsClass NewsClass get; set; public string Title get; set; public string Source get; set; public string Author get; set; public string Content get; set; public DateTime Updatatime get; set; public int Click get; set; 2、建立新闻数据表静态模型中的数据的形态,是一种“瞬时”的数据,即在程序运行的时候存在于内存中,一旦程序结束,或者数据处理结束,数据就从内存中被清除。数据的另外一种表现形态,就是永久化保存的形态。在很多情况下,需要把处理的数据保存到磁盘上,使数据成为永久化保存数据。新闻类也是一样的,需要将新闻信息的数据保存起来才能在今后浏览。数据库是最常用,也是最有效的数据存储方法。在一般的项目中都采用数据库来保存数据,我们这个实例项目采用SQL Server来保存数据。使用面向对象技术把数据保存在对象中,SQL Server是关系型数据库,怎么把保存在对象中的数据保存到关系型数据库,使“瞬时”数据变成永久数据呢?采用面向对象建模技术建立了对象模型后,可以把静态对象映射到数据库,映射方法是把静态模型中的类和关系数据库中的表相对应,数据表的名称对应类的名称,类数据表的列分别对应类属性。静态模型中类的一个实例(对象)和数据模型中表的一条纪录(行)相对应。但需要注意:从静态类到表的映射不全是一一对应的,对于简单的应用,大多数静态模型中的类与数据库中的表是一一对应的。按项目3中讲述的方法,打开网站的数据库,在这个数据库中再添加NewsClass表,根据NewsClass类在SQL Server建立的NewsClass表,NewsClass表定义如图5-1-5所示。在这个数据库中再添加News表,根据News类在SQL Server建立的News表,News表结构如图5-1-6所示。注意:要把新建的NewsClass表的ClassID字段定义为关键字段,并把该字段是否是标识规范设为“是”,参见图5-1-5。同理,要把新建的News表中的ID字段定义为关键字段,并把该字段是否是标识规范设为“是”。 图5-1-5 NewsClass表结构 图5-1-6 News表结构把静态对象映射到数据库后,就可以利用ADO.NET技术,把静态对象中的数据保存到数据库中了。3、建立添加新闻的存储过程打开本实例网站的数据库(EMData.MDF),按项目3中所述的添加存储过程的方法,建立添加新闻的存储过程(Add_News)。代码如下:ALTER PROCEDURE dbo.Add_News (ClassID int,Title nvarchar (50),Source nvarchar(50),Author nvarchar(50),Content ntext,Updatatime Datetime,Click int)ASINSERT INTO News(ClassID, Title, Source, Author, Content, Updatatime, Click)Values(ClassID, Title, Source, Author, Content, Updatatime, Click)RETURN Identity在此存储过程中的最后一句是RETURN Identity,这一句很重要,对于添加记录的存储过程,如果数据表中的关键字段是标识字段,它就返回了新添加的一条新闻的自动编号。通过程序可以访问。获得该返回值的方法是:首先,定义命令对象获取默认返回值的参数,默认返回参数的参数名称是ReturnValue,参数的类型是SqlDbType.Int、参数的宽度为4、参数的方向是返回值ReturnValue、参数的精度、参数的小数位数、源列、要使用的DataRowVersion和参数的值初始化SqlParameter类的新实例。这个参数的属性很多,方法代码有些复杂,但很实用。示例代码如下:cmd.Parameters.Add(new SqlParameter(RETURNVALUE, SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null);然后,在执行存储过程之后,用如下的方法获取返回值:int ID = (int)cmd.ParametersRETURNVALUE.Value;4、建立添加新闻的数据访问层打开DAL项目类库,在其中新建一个NewsDAL.cs类文件(参见图5-1-3),这是添加新闻的数据访问层,用该类直接操作数据库中的News表,在其中新建Add_News()方法,用该方法向News表添加新闻。代码如下:using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using Model;using SQLHelper;namespace DAL public class NewsDAL public int Add_News(News news) SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter ParamList = sqlHelper.CreateInParam(ClassID,SqlDbType.Int,4,news.NewsClass.ClassID),sqlHelper.CreateInParam(Title,SqlDbType.NVarChar,50,news.Title),sqlHelper.CreateInParam(Source,SqlDbType.NVarChar,50,news.Source),sqlHelper.CreateInParam(Author,SqlDbType.NVarChar,50,news.Author),sqlHelper.CreateInParam(Content,SqlDbType.NText,0,news.Content),sqlHelper.CreateInParam(Updatatime,SqlDbType.DateTime,8,news.Updatatime),sqlHelper.CreateInParam(Click,SqlDbType.Int,4,news.Click) ; try return (sqlHelper.RunProc(Add_News, ParamList); catch (Exception ex) SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); finally sqlHelper.Close(); 5、建立添加新闻操作的业务逻辑层打开BLL项目类库,在其中新建一个NewsService.cs类文件,并在该文件中添加一个Add_News()方法,用它把从网页中接收到的数据传递给NewsDAL对象的Add_News()方法,实现添加新闻。代码如下:using System.Collections.Generic;using DAL;using Model;namespace BLL public class NewsService public int Add_News(News news) NewsDAL newsDAL = new NewsDAL(); return (newsDAL.Add_News(news); 6、建立新闻分类的数据访问层打开DAL项目类库,在其中新建一个NewsClassDAL.cs类文件,用该类直接操作数据库中的NewsClass表,在NewsClassDAL.cs类文件新建Get_NewsClass ()方法,读取所有新闻分类,再建立一个Get_SingNewsClass ()方法,按ID读取指定的新闻分类。代码如下:using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using Model;using SQLHelper;namespace DAL public class NewsClassDAL public List Get_NewsClass() SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter ParamList = sqlHelper.CreateInParam(ParentID,SqlDbType.Int,4,nParentID) ; SqlDataReader rec = null; try sqlHelper.RunProc(Get_NewsClass, ParamList, out rec); catch (Exception ex) SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); List List_NewsClass = new List(); while (rec.Read() NewsClass newsClass = new NewsClass(); newsClass.ClassID = Int32.Parse(recClassID.ToString(); newsClass.ClassName = recClassName.ToString(); List_NewsClass.Add(newsClass); newsClass = null; sqlHelper.Close(); return List_NewsClass; public NewsClass Get_SingNewsClass(int nClassid) SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter ParamList = sqlHelper.CreateInParam(Classid,SqlDbType.Int,4,nClassid) ; SqlDataReader rec = null; try sqlHelper.RunProc(Get_SingNewsClass, ParamList, out rec); catch (Exception ex) SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); NewsClass newsClass = new NewsClass(); while (rec.Read() newsClass.ClassID = Int32.Parse(recClassID.ToString(); newsClass.ClassName = recClassName.ToString(); sqlHelper.Close(); return newsClass; 7、建立新闻分类的业务逻辑层打开BLL项目类库,在其中新建一个NewsClassService.cs类文件,用它把从网页中接收到的数据传递给NewsClassDAL对象的相关方法,读取新闻分类的内容。在该类中新建一个Get_NewsClass()方法和一个Get_SingNewsClass()方法。代码如下:using System.Collections.Generic;using DAL;using Model;namespace BLL public class NewsClassService public List Get_NewsClass() NewsClassDAL newsClassDAL = new NewsClassDAL(); return (newsClassDAL.Get_NewsClass(nParentID); public NewsClass Get_SintNewsClass(int nClassid) NewsClassDAL newsClassDAL = new NewsClassDAL(); return (newsClassDAL.Get_SintNewsClass(nClassid); 8、发布新闻操作的界面(1)发布新闻的界面设计发布新闻的界面设计如图5-1-7所示。图5-1-7 添加新闻的界面右键单击网站项目中的Admin文件夹,选择“添加新项”,新建一个Add_News.aspx网页文件。参考图5-1-7,在Add_News.aspx网页中用表格布局,建立最简单的添加新闻操作界面,一般的信息输入都采用文本框,如输入标题文本的文本框为,新闻分类采用下拉列表控件,允许用户从下拉列表中选择一项,如新闻分类下拉列表控件的代码为 ,新闻内容一般需要输入的文字数量都很大,采用文本区域控件,在ASP.NET2.0中,文本区域控件与文件框控件是同一个控件,只要把文件框控件的TextMode属性设置为“MultiLine”,文件框控件就变成了文本区域控件。本实例中输入新闻内容的文本框设置为。添加新闻操作界面的完整代码如下: 添加新闻 添加新闻 新闻标题: 来源: 作者: 新闻分类: 详细内容: 访问量: 0 注意:在上述代码中应用了样式,有关本页应用的样式,请打开StyleSheet.css查看详细内容,样式表的编写方法,请查看项目4中任务3的相关知识。在上述代码中还应用了用户控件Bottom.ascx,该用户控件的代码很简单,仅仅是一个版权的声明,使用该用户控件的目的就是为了不重复在每一页都编写一遍这部分内容,以及如果某天需要修改其内容,只要改一个地方其它引用这个控件的网页都被修改了,可以大大减少重复劳动。数据验证,在每个项目中都必须进行数据验证工作。在ASP.NET项目开发时可以使用ASP.NET的数据验证控件。为确保在添加新闻时每一项都输入了内容,在代码中为每个输入项都添加了一个必填数据验证控件RequiredFieldValidator,应用该控件时有两个必填属性,分别是ControlToValidate和ErrorMessage,ControlToValidate属性用来设置要验证哪个控件,比如要验证标题文本框,请设置该属性值为标题文本框的ID值,如ControlToValidate=Title,ErrorMessage属性用来设置当用户没用输入某项时显示的必须输入信息的提示,如ErrorMessage=新闻标题不能为空。验证标题文本框的必填验证控件的完整代码是:,在每一个输入的文本框上都应用了必填输入验证控件,其代码与新闻标题的验证控件代码类似,不再重述。设计完成后,右键单击Add_News.aspx,选择“在浏览器中查看”,可以看到如图5-1-7所示的浏览效果。(2)发布新闻的后台代码填充新闻分类下拉列表控件打开添加新闻页时,读取新闻分类表的内容,填充新闻分类采用下拉列表控件,以便发布新闻时选择使用。填充新闻分类采用下拉列表控件的方法如下: /填充新闻分类的DropDownList public void BinClassData() NewsClassService newsClassService = new NewsClassService(); ClassID.DataSource = newsClassService.Get_NewsClass(0); ClassID.DataTextField = ClassName; ClassID.DataValueField = ClassID; ClassID.DataBind(); 注意:用这段代码给下拉列表控件提供数据源(DataSource)时,必须同时指定下拉列表控件的文本字段(DataTextField)和值字段(DataValueField),这两个字段的作用不同,文本字段是显示给用户看的,值字段是为后续程序代码应用的。最后别忘记进行数据绑定,即执行ClassID.DataBind()语句。数据绑定完成后,打开添加新闻界面时就可以看到新闻分类下拉列表控件其中已经填充了数据,可以选择使用,效果如图5-1-8所示。图5-1-8 新闻分类列表框读取各个控件的数据实例化一个新闻类,然后就可以读取各个文件框的值,并赋给新闻实例的各属性,代码如下: News news = new News(); news.Title = Title.Text; news.Source = Source.Text; news.Author = Author.Text; news.Content = Content.Text; news.Updatatime = DateTime.Now; news.Click = Int32.Parse(Click.Text);下拉列表控件的数据读取方法与文本框中数据有一定的不同。读取下拉列表控件中被选中项的数据的方法:ClassID.SelectedValue。该例中新闻的NewsClass属性不是C#的基本数据类型,而是自定义的新闻分类类型,读取到下拉列表控件中被选中项的数据后,还要利用newsClassService对象把该数据转换成新闻分类类型。news.NewsClass =newsClassService.Get_SingNewsClass(Int32.Parse(ClassID.SelectedValue);把读取的数据写入数据库在三层应用架构进行项目开发时,用户界面不能直接操作数据库,要把读取的数据写入数据库,只能通过业务逻辑层(BLL),调用NewsService对象的实例newsService的Add_News(news)方法,再通过访问数据访问层(DAL),调用NewsDAL对象的实例newsDAL的Add_News(news)方法把数据写入到数据库中。代码如下:NewsService newsService = new NewsService();int nID = newsService.Add_News(news);if (nID 0) Response.Write(alert(添加成功); location.href= Ddeault.aspx;);else Response.Write(alert(添加失败);history.back(1););提示:从这段代中看不到数据操作的语句,但的确以把数据写入到了数据库,有关数据操作的语句在数据访问层(DAL),NewsDAL对象的Add_News(news)方法中。在这段代码中不论添加新闻操作成功与失败都给用户有提示,在ASP.NET中进行提示的方法,一是利用给控件赋值的方法实现,二是用javascript实现,本实例采用第二种方法。用javascript实现时,实际是用ASP.NET的Response对象的Write方法输出一段javascript代码。添加成功后先提示用户添加成功,再利用javascript的location对象的href属性来指定转到的网址,这两步操作的实际代码为:Response.Write(alert(添加成功); location.href= Ddeault.aspx;)。如果有错误发生,则是先提示用户,再后退到原来的网址。提示:因为还没有开发显示新闻的网页,临时把网址转到Ddeault.aspx,如果开发了显示新闻的网页,就应该转到显示新闻的网页。后台操作的完整代码如下:using System;using System.Web.UI;using System.Web.UI.WebControls;/引用三层架构using Model;using BLL;public partial class admin_Add_News : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) BinClassData(); /填充新闻分类的DropDownList public void BinClassData() NewsClassService newsClassService = new NewsClassService(); ClassID.DataSource = newsClassService.Get_NewsClass(0); ClassID.DataTextField = ClassName; ClassID.DataValueField = ClassID; ClassID.DataBind(); protected void btnAddNews_Click(object sender, EventArgs e) News news = new News(); news.Title = Title.Text; news.Source = Source.Text; news.Author = Author.Text; news.Content = Content.Text; news.Updatatime = DateTime.Now; news.Click = Int32.Parse(Click.Text); NewsClassService newsClassService = new NewsClassService(); news.NewsClass = newsClassService.Get_SingNewsClass(Int32.Parse(ClassID.SelectedValue); NewsService newsService = new NewsService();
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!