留言板模块教学设计.doc

上传人:wux****ua 文档编号:9709772 上传时间:2020-04-07 格式:DOC 页数:19 大小:1.82MB
返回 下载 相关 举报
留言板模块教学设计.doc_第1页
第1页 / 共19页
留言板模块教学设计.doc_第2页
第2页 / 共19页
留言板模块教学设计.doc_第3页
第3页 / 共19页
点击查看更多>>
资源描述
留言板系统一、 系统分析(一)需求分析1. 要求系统具有良好的人机界面2. 能够满足用户的留言要求3. 能够让访客在查看留言内容后,对留言的内容发表自己的意见4. 管理员能够实现对留言的回复及删除操作5. 网站最大限度地实现易维护和易操作性6. 网站运行稳定、安全可靠(二)可行性分析留言板是Internet上最常见的一种服务,也是最典型的交互式网页。通常上网者可以使用访客留言板张贴一些文章,或是通过留言板给网站的维护者留下一些意见和看法,留言板也可以作为网友之间互通信息、相互交流的渠道。本系统后台数据库采用Microsoft SQL Server 2005,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大、效率高;前台采用Microsoft公司的Visual Studio 2005作为主要的开发工具,其可与SQL Server 2005数据库无缝连接。二、系统设计(一)设计目标1. 界面设计美观友好,使用灵活便捷2. 数据存储安全可靠3. 提供留言查看、留言发表、留言回复、留言删除功能4. 系统最大限度地实现易维护和易操作性5. 系统运行稳定、安全可靠(二)开发及运行环境系统开发平台:Microsoft Visual Studio 2005系统开发语言:C#系统后台数据库:Microsoft SQL Server 2005运行平台:Windows XP (SP2) / Windows 2000 (SP4) / Windows Server 2003 (SP1)运行环境:Microsoft .NET Framework SDK v2.0分辨率:最佳效果为1024768像素(三)数据库设计本系统采用了SQL Server 2005数据库,可以用来执行各种操作,更新数据库中的数据、从数据库中提取数据等。数据库名称为db_LeaveWordBook,使用3个数据表,分别是用户信息表(tb_User)、留言表(tb_LeaveWord)、和回复表(tb_Reply)。各数据表的结构如下: tb_User(用户信息表)用户信息表(tb_User)结构字 段类 型长 度是否可为空说 明IDint4否主键(自动编号)Uidnvarchar20否用户姓名Sexnvarchar2否性别Websitenvarchar50是主页Emailnvarchar30是E-mailQQnvarchar20是QQIPnvarchar20否IP地址Popedomint4否权限 tb_LeaveWord(留言表)留言表(tb_LeaveWord)结构字 段类 型长 度是否可为空说 明IDint4否主键(自动编号)Uidnvarchar20否留言人姓名Subjectnvarchar50否留言主题Contentntext16是留言内容DateTimedatetime8否留言时间IPnvarchar20否IP地址 tb_Reply(回复表)回复表(tb_Reply)结构字 段类 型长 度是否可为空说 明IDint4否主键(自动编号)Unamenvarchar20否回复人姓名Contentntext16是回复内容DateTimedatetime8否回复时间ReplyIDint4否回复IDIPnvarchar20否IP地址三、 系统开发(一) 首页设计index.aspx是留言板首页,效果如下:1. 功能描述留言板首页主要是将数据库中检索到的留言主题信息显示出来,用户可在界面左侧选择“查看主题”、“发表留言”、“用户注册”、“我的留言”、“留言管理”相应的主题后,在界面的右侧将显示相应的界面。2. 关键技术:本模块实现将数据动态添加到table表格中。首页index.aspx的主要部分是用户控件ShowSubject.ascx,该控件将数据动态绑定到客户端控件table表格上。此功能的实现是将前台中的一个单元格绑定GetList方法,此方法的主要功能是在该单元格中添加一个table表格,并将字段添加到动态生成的表格中。3. 功能实现前台表格中使用到了GetList方法将数据绑定到表格中,主要用到数据库中的tb_LeaveWord表中的ID编号字段的值的不同,查找出tb_LeaveWord表中对应的Subject字段的值并显示出来。实现步骤如下:(1) 创建Web窗体,命名为index.aspx。(2) 用户首页页面中使用的主要控件表如下:控件类型控件名称数 量用 途HTMLTable1布局页面UserControlShowSubject1显示主题(3) 主要代码:public string GetList() SqlData da = new SqlData(); SqlDataReader dr = da.ExceRead(select * from tb_LeaveWord ); string strBody = ; while (dr.Read()/循环读取 strBody += + drSubject.ToString() + n; dr.Close();/关闭阅读器 strBody += ; return strBody; (二) 发表留言ReleaseWord.aspx用于用户发表留言信息,效果如下:1. 功能描述本系统中,浏览者发表留言必须先进行注册,通过“用户注册”模块注册完成后,即可登录到系统中,单击导航栏中“发表留言”项,可发表留言信息。2. 关键技术该页面中主要使用FreetextBox组件,该组件是一个在线文本编辑器,可以对文字以及图片内容进行处理,并将数据保存到数据库中。该组件配置步骤如下:(1) 将FreetextBox.dll添加到项目中。在“解决方案资源管理器”中右键单击项目,选择快捷菜单中的“添加引用”选项,在弹出的对话框中选择“浏览”选项卡,找到组件存放位置,单击“确定”按钮,系统将自动创建Bin文件夹,并将组件存放到该文件夹中,如下所示:(2) 设置SupportFolder属性,将存放有FreetextBox组件的文件夹存放到aspnet_client文件夹中,然后设置SupportFolder属性为“aspnet_client/FreeTextBook/”。(3) 向页面中添加组件。配置完成后,即可向页面中的位置添加组件。在向页面中添加组件前,先注册组件。在页面HTML源代码顶部添加注册代码如下:在页面中适当的位置再添加FreetextBox组件,代码如下:(4) 写入数据库。完成以上配置后,就可以使用该组件向数据库插入数据。3. 功能实现主要步骤如下:(1) 创建Web窗体,命名为ReleaseWord.aspx。(2) 发表留言页面中使用的主要控件如表:控件类型控件名称数 量用 途HTMLTable1布局页面HTMLInput(Reset)2重置/返回标准Button1提交标准Textbox1填写留言主题标准FreeTextBox1填写留言内容(3) 主要代码:protected void btnOK_Click(object sender, EventArgs e) SqlData da = new SqlData(); string cmdtxt = INSERT INTO tb_LeaveWord(Uid,Subject,Content,DateTime,IP); cmdtxt += VALUES( + SessionUserName.ToString()+ , + this.TextBox1.Text + ; cmdtxt += ,+this.FreeTextBox1.Text+, + DateTime.Now+ ; cmdtxt += , + Request.UserHostAddress + ); bool add = da.ExceSQL(cmdtxt); if (add = true) Response.Write(alert(添加成功!);location=Index.aspx); else Response.Write(alert(添加失败!);location=javascript:history.go(-1); (三) 查看留言ShowWord.aspx用于查看留言信息,效果如下:1. 功能描述用户在首页选择相应的主题后,即可进入ShowWord.aspx查看详细内容。在开发本系统时,需要在页面中比较全面的显示一些信息,但如果要显示的信息记录较多,此时用一个页面显示所有的记录,可能给用户的浏览带来不便,为了解决这个问题,开发人员可以使用分页技术来限定一个页面中显示的记录数。本系统在留言板中,通过DataList控件绑定数据,分页显示该系统中的留言信息。2. 关键技术(1) 本系统通过DataList控件绑定数据,分页显示该系统中留言信息的关键代码如下:PagedDataSource ps = new PagedDataSource();ps.AllowPaging = true; /是否可以分页ps.PageSize = 3; /显示的数量ps.CurrentPageIndex = curpage - 1; /取得当前页的页码this.DataList1.DataSource = ps;(2) 本系统是通过母版来实现的,因此在布局页面时,只需要布局母版页的内容即。使用ASP.NET母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页定义所需的外观和标准行为。可以创建包含要显示内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并,然后将母版页的布局与内容页组合在一起输出。3 功能实现此功能的实现主要用到数据库中的tb_LeaveWord表和tb_Reply表。本模块根据传入的编号值来查找tb_LeaveWord中的信息,给声明的变量赋值,并绑定一个自定义方法dlBind方法,该方法实现分页的功能,方便查看。主要实现步骤如下:(1) 创建Web窗体,命名为LeaveWordView。(2) 留言信息查看页面中用到的主要控件如下表:控件类型控件名称数 量用 途HTMLTable6布局页面标准Label2显示数据标准DataList1显示检索到的数据标准LinkButton6我要回复/查看回复/控制翻页(3) 主要代码:由于在前台页面中绑定了几个变量,因此要在后台代码中首先声明这些全局变量,并将它们设为public类型,代码如下:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class Default2 : System.Web.UI.Page public string ShowSubject, ShowTime, ShowContent,ShowName;/以下为其他事件和方法在Page_Load事件中,首先根据来自主页传递的值检索数据表中相关数据,再给声明的变量赋值,并绑定一个自定义方法dlBind方法,代码如下:protected void Page_Load(object sender, EventArgs e) string cmdtxt = SELECT * FROM tb_LeaveWord WHERE ID=+RequestID.ToString()+; SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettingsConSql); Con.Open(); SqlCommand Com = new SqlCommand(cmdtxt, Con); SqlDataReader dr = Com.ExecuteReader(); dr.Read(); if (dr.HasRows) ShowSubject = drSubject.ToString(); ShowTime = drDateTime.ToString(); ShowContent = drContent.ToString(); ShowName = drUid.ToString(); dr.Close();/关闭阅读器 this.dlBind();/调用dlBind方法页面中最关键的是dlBind方法的使用,该方法中实现了DataList控件分页技术,代码如下:public void dlBind() int curpage = Convert.ToInt32(labNowPage.Text); PagedDataSource ps = new PagedDataSource(); SqlConnection mycon = new SqlConnection(ConfigurationManager.AppSettingsConSql); mycon.Open(); string cmdtxt1 = SELECT * FROM tb_Reply WHERE ReplyID= + RequestID.ToString() + ; SqlDataAdapter MyAdapter = new SqlDataAdapter(cmdtxt1, mycon); DataSet ds = new DataSet(); MyAdapter.Fill(ds, tb_Reply); ps.DataSource = ds.Tablestb_Reply.DefaultView; ps.AllowPaging = true; /是否可以分页 ps.PageSize = 3; /显示的数量 ps.CurrentPageIndex = curpage - 1; /取得当前页的页码 lnkbtnPrve.Enabled = true; lnkbtnTop.Enabled = true; lnkbtnNext.Enabled = true; lnkbtnLast.Enabled = true; if (curpage = 1) lnkbtnTop.Enabled = false;/不显示第一页按钮 lnkbtnPrve.Enabled = false;/不显示上一页按钮 if (curpage = ps.PageCount) lnkbtnNext.Enabled = false;/不显示下一页 lnkbtnLast.Enabled = false;/不显示最后一页 this.labCount.Text = Convert.ToString(ps.PageCount); this.DataList1.DataSource = ps; this.DataList1.DataKeyField = ID; this.DataList1.DataBind();控制DataList翻页主要使用LinkButton控件,实现分页功能的代码如下:protected void lnkbtnTop_Click(object sender, EventArgs e) this.labNowPage.Text = 1; this.dlBind(); protected void lnkbtnPrve_Click(object sender, EventArgs e) this.labNowPage.Text = Convert.ToString(Convert.ToInt32(this.labNowPage.Text) - 1); this.dlBind(); protected void lnkbtnNext_Click(object sender, EventArgs e) this.labNowPage.Text = Convert.ToString(Convert.ToInt32(this.labNowPage.Text) + 1); this.dlBind(); protected void lnkbtnLast_Click(object sender, EventArgs e) this.labNowPage.Text = this.labCount.Text; this.dlBind(); (四) 管理留言LeaveWordManage.aspx用于管理留言,效果如下:1. 功能描述单击导航栏中的“留言管理”项,进入到登录页面,该页面是管理员用户登录系统的入口。管理员登录成功后,即可进入留言信息管理页面,该页面显示所有注册用户的留言信息,并可以对留言信息进行查看、回复和删除。2. 关键技术(1) 本模块需要实现把数据显示到DataList控件中,使用到DataList控件的绑定技术。DataList控件提供了DataKeys属性。该属性用于获取存储数据列表控件中每个记录的键值。(2) 本系统主要用到了session对象,目的是为了用session对象判断用户登录状态,如果程序没有判断用户登录状态,那么用户登录毫无意义,非法用户便可通过地址栏访问任一网页;如果判断其登录状态,非法用户则不可通过地址栏非法访问网站后台,并且将网页重新定向到网站登录页面。3. 功能实现本模块需要实现数据显示到DataList控件中,使用到了DataList控件的绑定技术。此功能的实现用到数据库中的tb_LeaveWord表,通过传过来tb_LeaveWord表中ID字段的值的应用,对该记录进行操作完成“回复留言”、“查看留言”、“删除留言”功能的实现。由于前台页面中绑定的是变量,为了使数据能够正常显示,首先要声明几个全局变量,代码如下:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class Default2 : System.Web.UI.Pagepublic string ShowSubject, ShowTime, ShowContent; /声明的变量/以下为其他事件和方法在Page_Load事件中,首先判断用户是否登录,若未登录,则返回到登录页面;反之,进入管理页面并将数据绑定到DataList控件,代码如下:protected void Page_Load(object sender, EventArgs e) if (SessionUserName = null) Response.Redirect(Login.aspx); this.dlBind();该页面中具有删除留言功能,主要是通过DataList控件中的LinkButton控件实现。将LinkButton按钮的CommandName属性值设为delete,然后DataList控件的DeleteCommand事件中编写代码完成删除功能,代码如下:protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) string strid = this.DataList1.DataKeyse.Item.ItemIndex.ToString(); /获取当前DataList控件列 string com = Delete from tb_LeaveWord where ID= + Convert.ToInt32(strid) + ; SqlData da = new SqlData(); da.ExceSQL(com); Page.Response.Redirect(LeaveWordManage.aspx);(五) 回复留言LeaveWordBack.aspx是回复留言页面,显示效果如下:1. 功能描述回复留言模块的主要功能是对留言人的留言进行回复,方便交流沟通。回复留言模块通过留言信息管理模块中传递过来的值,从留言表中检索出相应的ID和留言主题,并将留言主题绑定到控件中。2. 关键技术在与数据库的交互中,要获得数据访问的结果可以通过DataReader对象从数据源中获取数据并进行处理。DataReader是一个DBMS所特有的,常用来检索大量数据。DataReader在一个接一个地查看查询结果的记录时使用。并且,DataReader是查询结果的一种只进、只读的视图。本系统使用DataReader对象保存信息的代码如下:SqlDataReader dr = Com.ExecuteReader(); dr.Read(); if (dr.HasRows) this.txtSubject.Text = drSubject.ToString(); dr.Close();3. 功能实现本模块根据传来的编号值来查找tb_LeaveWord中的信息,实现将数据绑定到控件中的功能,用户把信息输入到文本框中,通过“提交”按钮完成向数据库提交数据的操作。回复留言是留言板中关键的一项,主要实现步骤如下:(1) 创建Web窗体,命名LeaveWordBack.aspx。(2) 回复留言页面中使用的主要控件如下表:控件类型控件名称数 量用 途HTMLTable1布局页面HTMLInput(Reset)2重置/返回标准Button1提交标准TextBox2显示回复主题/填写回复人姓名标准FreeTextBox1填写回复内容(3) 主要代码:在页面的Page_Load事件中,通过从留言信息管理页面传递过来的值,从数据库中检索出数据并绑定到控件,代码如下: protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettingsConSql); Con.Open(); string id = RequestID.ToString(); string cmdtxt = SELECT * FROM tb_LeaveWord WHERE ID= + id + ; SqlData da = new SqlData(); SqlCommand Com = new SqlCommand(cmdtxt, Con); SqlDataReader dr = Com.ExecuteReader(); dr.Read(); if (dr.HasRows) this.txtSubject.Text = drSubject.ToString(); dr.Close(); 页面中的“提交”按钮,完成向数据库提交数据的操作,主要功能代码如下: protected void btnOK_Click(object sender, EventArgs e) SqlData da = new SqlData(); string cmdtxt = INSERT INTO tb_Reply(UName,Content,DateTime,ReplyID,IP); cmdtxt += VALUES( + this.txtUid.Text + , + this.FreeTextBox1.Text + , + DateTime.Now + ; cmdtxt += , + RequestID.ToString() + , + Request.UserHostAddress + ); if (da.ExceSQL(cmdtxt) Response.Write(alert(操作成功!);location=LeaveWordView.aspx?ID=+RequestID+); else Response.Write(alert(操作失败!); 四、 系统测试开发和编写程序的过程中经常会出现一些错误,其中包括语法错误,语义错误和编辑错误等,无论哪种错误都有可能导致程序不能执行或执行过程中出现失败。因此如何处理错误可能是优秀的应用程序设计中最得要的部分。即使程序在本地运行没有错误,开发人员也很难保证程序在任何环境下都运行正常。Visual Studio.NET环境中提供了Visual Studio调试器。该调试器提供了功能强大的命令来控制应用程序的执行。一般有如下方法:1. 断点断点通知调试器,应用程序在某点上或某情况发生时中断。发生中断时,称程序和调试器处于中断模式。进行中断模式并不会终止或结束程序的执行,所有元素(如函数、变量和对象)都保留在内存中,执行可以在任何时候继续。插入断点有3种方式:在要设置断点行旁边的灰色空白处单击;右击设置断点的代码行,在弹现的快捷菜单中选择“断点”/“插入断点”命令;单击要设置断点的代码行,选择菜单中的“调试”/“切换断点(G)”命令。插入断点后,就会在设置断点的行旁边的灰色空白处出现一个红色圆点,并且该代码也呈现高亮显示。删除断点有4种方式:单击断点的行旁边的灰色空白处的红色圆点;单击断点的行旁边的灰色空白处的红色圆点,选择“删除断点”;右击设置断点的代码行,在弹出的快捷菜单中选择“断点”/“删除断点”命令;单击要设置断点的代码行,选择菜单中的“调试”/“切换断点(G)”命令。2. 开始执行可以通过在“调试”菜单中选择“启动调试”、“逐语句”或“逐过程”来执行程序并调试,此时,应用程序启动并一直运行到断点;也可以通过右击可执行代码中的某行,然后从快捷菜单中选择“运行到光标处”命令,此时应用程序启动并一直运行到断点或光标位置。3. 中断执行当应用程序的执行到在一个断点或发生异常,调试器就会中断程序的执行。也可通过在“调试”菜单中,选择“全部中断”命令手动中断执行,这时调试器将停止所有在调试器下运行的程序的执行,但程序并不退出,而且可以随时恢复执行。调试器和应用程序现在处于中断模式。4. 停止执行停止执行意味着终止当前正在调试的程序并结束调试会话,可以通过选择菜单中的“调试”/“停止调试”命令或单击“调试”工具栏中的按钮来结束运行和调试,也可以退出正在调试的应用程序,调试将自动停止。5. 单步执行单步执行是最常见的调试过程之一,即每次执行一行代码。“调试”菜单中提供了3个逐句通过代码的命令,即“逐语句”,“逐过程”,“跳出”。6. 运行到指定位置如果在调试过程中想执行到代码中的某一行然后中断,可以通过在要中断的位置设置断点,接着在“调试”菜单中选择“启动”或“继续”命令;也可以在代码窗口中右击某行,并从快捷菜单中选择“运行到光标处”选项。五、 系统运行(一) 发布网站在Visual Studio 2005中打开一个想要发布的网站,在该网站中右击,选择“发布网站”命令,在弹出的发布网站的窗口“目标位置”文本框中输入要发布网站的目标地址,单击“确定”按钮。此时Visual Studio 2005将预编译网站的内容,并将输出写入到指定的文件夹中,在“输出”窗口显示进度消息。如果编译发生一个错误,“输出”窗口中会报告该错误。(二) 检查“发布网站”命令的输出在“发布网站”命令目标的文件夹中,用文本编辑器打开derault.aspx文本。在该文件中不包含原有的标记,只是一个可用作URL的一部分的占位符。在Bin文件夹中,包含两个类型的文件,一个是complied文件,对应于页,另一个是dll文件,如创建的类文件,包含网站的可执行代码。(三) 测试发布的网站创建一个指向目标文件夹的IIS虚拟目录,使用IIS管理工具创建虚拟目录,通过运行发布的网站来测试该网站。六、 系统维护Visual Studio中测试文件系统网站时,ASP.NET Development Server将自动运行。某些情况下,使用ASP.NET Development Server会产生错误。相应解决方案如下:(一) WEB服务器配置不正确1. 尝试调试一个已复制到不同的计算机上、经过手动重命名或移动过的.NET Web应用程序2. 没有足够的IIS连接3. debug谓词没有与.aspx关联4. 在IIS中该网站没有配置为应用程序(二) IIS管理服务没有响应1. 使用“管理工具”中的“服务工具”验证该服务是否正在运行2. 检查是否安装IIS(三) 连接被拒绝1. 客户端未安装防火墙2. Internet Explorer中的web代理配置不正确(四) 不能使用静态文件在文件系统网站中,静态文件受到ASP.NET授权规则的影响。例如,如果禁用了对静态文件的匿名访问,匿名用户则不能使用文件系统网站中的静态文件。但是,将网站部署到运行IIS的服务器时,IIS将提供静态文件而不使用授权规则。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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