个人博客设计报告(共16页).doc

上传人:飞****2 文档编号:13343373 上传时间:2022-04-29 格式:DOC 页数:16 大小:1.39MB
返回 下载 相关 举报
个人博客设计报告(共16页).doc_第1页
第1页 / 共16页
个人博客设计报告(共16页).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《个人博客设计报告(共16页).doc》由会员分享,可在线阅读,更多相关《个人博客设计报告(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上个人博客设计报告软件需求说明书1、 引言a) 编写目的对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。b) 背景软件名称:个人博客。2、 正文该个人博客是一个小型的博客,它的主要功能有:登录,发表文章,发表评论等。用户登录博客后,可以查看个人资料;可以查看已经发表过的文章和评价;可以发表新的文章和新的评论;可以修改文章的内容;还可以删除文章和评论。该博客使用固定的用户名和密码,用户名为:admin;密码为admin。该博客除了上述功能外,我们还可以添加其他功能,如:(1)、添加留言板,更多的和读者交流;(2)、添加音乐盒,让你

2、在更新你的个人博客的同时聆听音乐;(3)、添加最近访问人的名单,告诉你最近有几个人访问了你的个人博客;(4)、为每个文章添加相关文章,方便其他读者进行链接阅读;(5)、相册,用于存放相片等。3、 任务概要a) 目标提供用户一个简单的博客,能够实现发布文章、修改文章和删除文章;还有能够实现对文章的评价以及删除评价等功能。b) 约束对发表文章进行约束,只有登录后才能进行发表文章和查看个人资料;对用户输入的Email进行约束,当用户所输入的Email格式不正确时提醒用户。c) 绑定将数据信息存入数据库中,在博客上用代码将表格与数据库的信息进行绑定,用以实现数据的显示功能。4、 需求规定a) 功能该博

3、客的主要功能有:用户登录、发表文章、修改或删除文章、发表评价、删除评价等。1:登录个人博客的账号和密码是固定的,其用户名为:admin,密码为:admin。2:只有登录博客后才可以对该博客进行文章的添加和修改。3:不论是否登录博客,都可以对文章进行评价,但是要删除评价只能登录博客后才能进行。4:个人信息的显示只有登录博客后才能看到。b) 基本数据i. 文章的主要数据类型数据库中文章所在表的名称为:Notes。文章ID:NoteID数字类型(自动编号)文章标题:Title文本类型文章内容:Contents备注类型张贴时间:DataTime日期/时间类型ii. 评价的主要数据类型数据库中评价所在的

4、表的名称为:Comments。评价ID:CommentID数字类型(自动编号)对应文章ID:NoteID数字类型游客名称:Author文本类型Email地址:Email文本类型评价内容:Comment备注类型发布时间:DataTime日期/时间类型c) 灵活性该博客的灵活性良好,其基本功能都能在同一个网页上执行,步骤简单。当用户未登录博客时,能提醒用户登录后可以查看个人资料,还可以进行更多的管理。当用户输入的Email地址有误时,会提示用户输入正确的Email地址。d) 输出方式该博客需要在IE6以上的浏览器使用。5、 开发环境规定个人博客运用Microsoft Visual Studio 2

5、005编写,其数据库使用ACCESS。使用说明书1、 编辑软件该博客使用的编辑软件是Microsoft Visual Studio 2005。2、 数据库该博客使用的数据库是ACCESS。3、 路径请将文件夹放在该路径F盘,使文件中数据库的路径为:F:BlogApp_DataBlog.mdb或则将文件web.config中的Data Source的路径改成数据库所在的位置的路径。4、 密码使用博客是请打开登录网页Login.aspx,用户名和密码都为:admin。概要设计说明书1、 引言a) 编写目的对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。b)

6、 背景软件名称:个人博客。2、 总体设计a) 需求规定该博客的主要功能有:用户登录、发表文章、修改或删除文章、发表评价、删除评价等。1:登录个人博客的账号和密码是固定的,其用户名为:admin,密码为:admin。2:只有登录博客后才可以对该博客进行文章的添加和修改。3:不论是否登录博客,都可以对文章进行评价,但是要删除评价只能登录博客后才能进行。4:个人信息的显示只有登录博客后才能看到。b) 运行环境个人博客运用Microsoft Visual Studio 2005编写,其数据库使用ACCESS。c) 基本设计概念和处理流程根据其需求规定先建立数据库,在根据数据库和需求规定进行编写网页。i

7、. 登录系统:判断用户名和密码是否正确。如不正确,提示用户并让用户重新登录。如果正确,登录到博客主页面,并提供用户显示个人资料、添加、修改、删除文章和评价等功能。ii. 发表文章用户只有在登录成功后才可以发表文章。发表的文章必须输入标题,如果没有输入,则提示用户标题不能为空,让用户重新输入。iii. 修改文章用户只有在登录成功后才可以对文章进行修改和删除。在删除文章时,其对应的评价一并删除。iv. 发表评价发表评价在登录前和登录后都能进行评价,评价是必须输入游客名,如游客名为空,则提示用户游客名不能为空,让用户重新输入。3、 设计和运行结果a) 登录i. 新建一个网页命名为 Login.asp

8、x 。在主界面插入一个层,并添加背景图片。ii. 在层内插入4行2列的表格,添加文字和文本使其显示如下图登录界面: 用户名文本ID为:boxcontent;密码文本ID为Password,类型为TextMode=Password;Cookie标签ID为Persistent,类型CssClass=boxcontent,其功能为保存用户名。按钮登录ID为LoginUser,行为OnClick=LoginUser_Click。iii. 在表格下方添加一个Lable,内容为“用户名或者密码不正确,请重新登录!”。文本颜色红色,不可见。其属性为:ID=InvalidLogin、ForeColor=Red

9、 、Visible=False。iv. 在代码文件Login.aspx.cs中添加代码如下控制登录:protected void Page_Load (object sender, EventArgs e) if (!IsPostBack) if (Request.Paramslogout = true) FormsAuthentication.SignOut (); protected void LoginUser_Click (object sender, EventArgs e) / 检查用户名和密码 if (FormsAuthentication.Authenticate (UserN

10、ame.Text, Password.Text) / 如果检查通过,保存CookieFormsAuthentication.SetAuthCookie (UserName.Text, Persistent.Checked); / 重定向到Default.aspx Response.Redirect (Default.aspx, true); else InvalidLogin.Visible = true; /登录失败显示Lable v. 登录界面vi. 登录的控制在web.config文件中可以设置登录的用户名和密码,其代码如下:在该文件中还需定义数据库的位置,即将Data Source的路

11、径改成数据库所在的位置的路径。b) 主界面登录成功后则进入主界面。主界面的设计包括博客标题,个人资料,日历,登录、退出按钮的设计等。先给主界面添加一个5*3的表格,使其构成一个框架。i. 博客标题将第一行合并单元格,添加背景图片后,在添加两个文本按钮“登录”和“退出”。对齐格式为右对齐。两个文本按钮的代码如下:登录退出在代码文件Default.aspx.cs文件中添加代码控制这两个文本按钮:protected void SetVisible(bool IsMasterLogined)HyperLink_Login.Visible = !IsMasterLogined;HyperLink_Log

12、out.Visible = IsMasterLogined;/控制登录按钮在用户未登录是显示,退出按钮在用户登录后显示。将第二行合成单元格,添加背景图片和文本标题。其结果为:ii. 个人资料个人资料与登录、退出文本按钮一样,在用户登录前,显示的是文本提示“登录后可查看个人资料,还可以进行更多管理”,用户登录后显示个人资料,其代码同上在文件Default.aspx.cs的protected void SetVisible(bool IsMasterLogined)中添加:HyperLink_DngAn.Visible = IsMasterLogined;/个人资料HyperLink1.Visib

13、le = !IsMasterLogined;/登录前的文本个人资料在用户登录前和登录后显示如下: iii. 日历为博客添加如下图所示日历:其设计代码如下: 控制代码如下: protected void Calendar1_SelectionChanged(object sender, EventArgs e) SessionFromDate = Calendar1.SelectedDates0; SessionToDate = Calendar1.SelectedDatesCalendar1.SelectedDates.Count - 1.AddDays(1); DataBind(); c)

14、文章列表文章列表使用的是工具箱中数据栏里的GridView,将GridView拖至表格第三行的左边单元格内,然后添加数据库内的数据,过程如下图步骤:1在选择数据源下拉列表中选择新建数据源,发开窗口如下:2选择Access数据库,点击确定,出现如下窗口:3选择浏览,找到我们的数据库后单击确定:4在指定来自表或试图的列中选择数据库表Notes中的数据Title,点击下一步即可完成。则主界面的总体显示如下图:d) 文章显示、添加文章和文章的管理i. 文章的显示文章的显示方法与文章列表相同,使用的是工具箱中数据栏的DetailsView,用同样的方法绑定数据库,在数据库表Notes中选择Title、C

15、ontents、DateTime。在显示的同时,给用户提供对文章的管理,即修改、删除和发表评论。其设计代码如下: asp:LinkButton ID=LinkButton_Modify_Note runat=server OnClick= LinkButton_Modify_Note_Click Visible=修改 asp:LinkButton ID=LinkButton_Delete_Note runat=server OnClick = LinkButton_Delete_Note_Click Visible=删除发表评论ii. 添加文章界面新建一个移动WEB用户控件命名为:NoteEd

16、itor.ascx。在界面添加文字、文本框、按钮和隐藏属性。并在NoteEditor.ascx.cs文件中定义它们的属性。我们添加文章时,我们的标题应不能为空,这在按钮提交是先判断标题是否为空,代码如下:protected void Button1_Click (object sender, EventArgs e) string a; a = TextBox1.Text; if (a = ) Label2.Text = 用户名不能为空; else if (Submit_Note != null) Submit_Note (sender, e);添加界面如下:如果标题不为空,则允许添加文章,添

17、加代码如下:public void SetInsert () Title = ; Contents = ; IsModify = false; Button_Text = 提交新消息; 将设计好的界面拉至主界面的正中间,在其上面添加一个文字按钮:发表文章,其在用户登录前不显示。iii. 文章管理文章管理就是对文章的修改和删除的管理,设计代码如上显示,其控制代码如下:protected void LinkButton_Modify_Note_Click(object sender, EventArgs e)String str_Title = String.Empty, str_Contens

18、= String.Empty, str_DateTime = String.Empty;int int_NoteID = Convert.ToInt32(GridView1.SelectedValue);myBlog.GetNoteData(int_NoteID, ref str_Title, ref str_Contens, ref str_DateTime);NoteEditor1.SetModify(str_Title, str_Contens, int_NoteID);NoteEditor1.Visible = true;CommentEditor1.Visible = false;p

19、rotected void LinkButton_Delete_Note_Click(object sender, EventArgs e) int int_NoteID = Convert.ToInt32(GridView1.SelectedValue);myBlog.DeleteNote(int_NoteID);DataBind();NoteEditor1.Visible = false;CommentEditor1.Visible = false;e) 添加评价和评价的管理i. 添加评价界面添加评价界面的方法同添加发表文章界面的方法,即新建一个移动WEB用户控件文件命名为:Comment

20、Editor.ascx。ii. 评价的显示和管理评价的显示是在主界面中使用工具箱中数据栏下的Repearter,其设计代码如下:asp:Label ID=CommentAuthor runat=server Text=发表于:asp:Literal ID=literal_CommentTime runat=server Text=Email: a class=comment href= 评论:asp:LinkButton ID=DeleteComment runat=server CommandArgument = CommandName=Delete Text=删除 Visible= asp

21、:Label ID=CommentContents runat=server Text= 4、 数据库内容的读取和各个按钮的动作新建一个文件夹命名为APP_Code,在文件夹内新建一个脚本文件Blog.cs,在其中添加连接数据库和按钮动作的代码:public class Blog private OleDbConnection m_Connection; private String m_brChar = n; public Blog ()m_Connection = new OleDbConnection (ConfigurationManager.AppSettingsConnString

22、); ; private void ExecuteCommand (OleDbCommand cmd) cmd.Connection = m_Connection; try m_Connection.Open (); cmd.ExecuteNonQuery (); finally m_Connection.Close (); public DataSet GetNotes (DateTime fromDate, DateTime toDate) DataSet ds = new DataSet (); / 查询特定时间段内张贴的文章,填入DataSet的MyNotes表中 OleDbDataA

23、dapter da = new OleDbDataAdapter (SELECT * FROM Notes WHERE DateTime BETWEEN ? AND ? ORDER BY DateTime DESC, m_Connection); da.SelectCommand.Parameters.Add (FromDate, OleDbType.Date).Value = fromDate; da.SelectCommand.Parameters.Add (ToDate, OleDbType.Date).Value = toDate.AddDays (1); m_Connection.O

24、pen (); da.Fill (ds, MyNotes); / 关闭数据库连接 m_Connection.Close (); return ds; / 返回数据集 public DataSet GetComments (int noteID, ref int count) DataSet ds = new DataSet (); String selectCmd = SELECT * FROM Comments WHERE NoteID = ? ORDER BY DateTime DESC; OleDbDataAdapter da = new OleDbDataAdapter (select

25、Cmd, m_Connection); da.SelectCommand.Parameters.Add (NoteID, OleDbType.Integer).Value = noteID; m_Connection.Open (); da.Fill (ds, MyComments); count = ds.TablesMyComments.Rows.Count; m_Connection.Close (); return ds; public void InsertNote (String title, String contents) OleDbCommand cmd = new OleD

26、bCommand (INSERT INTO Notes (Title, Contents) VALUES (?, ?); cmd.Parameters.Add (Title, OleDbType.VarChar).Value = title; cmd.Parameters.Add (Contents, OleDbType.LongVarChar).Value = contents.Replace (m_brChar, ); ExecuteCommand (cmd); public void InsertComment (int noteID, String author, String ema

27、il, String comment) OleDbCommand cmd = new OleDbCommand (INSERT INTO Comments(NoteID, Author, Email, Comment) VALUES(?, ?, ?, ?); cmd.Parameters.Add (NoteID, OleDbType.Integer).Value = noteID; cmd.Parameters.Add (Author, OleDbType.VarChar).Value = author; cmd.Parameters.Add (Email, OleDbType.VarChar

28、).Value = email; cmd.Parameters.Add (Comment, OleDbType.LongVarChar).Value = comment.Replace (m_brChar, ); ExecuteCommand (cmd); / 如果邮件提醒功能打开,则发送一封邮件给博客主人 String sendNotifications = ConfigurationManager.AppSettingsSendNotifications; if (sendNotifications != null & sendNotifications = 1) String noteT

29、itle = String.Empty, noteDate = String.Empty; / 读取父消息的细节(标题和发布时间) cmd.CommandText = SELECT Title, Date FROM Notes WHERE NoteID = + noteID; m_Connection.Open (); OleDbDataReader reader = cmd.ExecuteReader (CommandBehavior.CloseConnection); if (reader.Read () noteTitle = readerTitle.ToString (); noteD

30、ate = (DateTime) readerDate).ToString (); reader.Close (); / 创建Email提醒的内容 String mailMsg = String.Format (0 (email: 1 刚刚在你的博客上张贴了评论) + “2”,张贴时间为3。评论内容如下:445, author, email, noteTitle, noteDate, Environment.NewLine, comment); / 发送邮件 SmtpClient smtpClient = new SmtpClient (); smtpClient.Send (miniBlog

31、, ConfigurationManager.AppSettingsAdminEmail, 新的评论, mailMsg); public void UpdateNote (int noteID, String title, String contents) OleDbCommand cmd = new OleDbCommand (UPDATE Notes SET Title = ?, Contents = ? WHERE NoteID = ?); cmd.Parameters.Add (Title, OleDbType.VarChar).Value = title; cmd.Parameter

32、s.Add (Contents, OleDbType.LongVarChar).Value = contents.Replace (m_brChar, ); cmd.Parameters.Add (NoteID, OleDbType.Integer).Value = noteID; ExecuteCommand (cmd); public void UpdateComment (int commentID, String author, String email, String comment) OleDbCommand cmd = new OleDbCommand (UPDATE Comme

33、nts SET Author = ?, Email = ?, + Comment = ? WHERE CommentID = ?); cmd.Parameters.Add (Author, OleDbType.VarChar).Value = author; cmd.Parameters.Add (Email, OleDbType.VarChar).Value = email; cmd.Parameters.Add (Comment, OleDbType.LongVarChar).Value = comment.Replace (m_brChar, ); cmd.Parameters.Add

34、(CommentID, OleDbType.Integer).Value = commentID; ExecuteCommand (cmd); public void DeleteNote (int noteID) OleDbCommand cmd = new OleDbCommand (DELETE FROM Notes WHERE NoteID = + noteID); ExecuteCommand (cmd); cmd.CommandText = DELETE FROM Comments WHERE NoteID = + noteID; ExecuteCommand (cmd); pub

35、lic void DeleteComment (int commentID) OleDbCommand cmd = new OleDbCommand (DELETE FROM Comments WHERE CommentID = + commentID); ExecuteCommand (cmd); public void GetNoteData (int noteID, ref String title, ref String contents, ref String post_time) OleDbCommand cmd = new OleDbCommand (SELECT * FROM Notes WHERE NoteID = + noteID, m_C

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁