学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 计算机论文 > asp论文

ASP技术下网络留言板应用程序的开发思路

来源:学术堂 作者:姚老师
发布于:2015-09-15 共3435字
摘要

  在 B/S 应用系统开发过程中, 经常会遇到主从表关联显示数据记录的设计,例如留言板系统,博客系统,论坛社区等,主表存储发起人的留言内容,从表存储回复者的留言内容, 主表与从表的数据显示在同一个页面上,以便数据的浏览和处理。 这种显示方式页面布局简洁,逻辑性强,在 B/S 系统开发中得到广泛应用。 本系统主要以使用 Visual Studio 2008作为开发工具,Access2007 作为后台数据库, 利用Datalist 控 件 与 GrivdView 控件嵌套 , 通过DataSource 数据控件和 ADO.NET 技术对数据库进行操作, 阐述开发网络留言板应用程序的思路与过程。

  一、设计功能

  留言板的主要功能是给网络用户提供留言、回复等操作,本系统主要有两种角色:普通用户和网站管理员。 普通用户在身份验证通过后,只具有发表留言和回复留言权限; 网站管理员具有对数据的管理功能,如删除留言,编辑留言等。 具体功能设计如图1 所示。

  二、数据库设计

  数据库系统负责存储用户信息,用户发表、回复的留言等相关数据, 本项目数据库采用的是微软Access 2007, 它具有友好界面 , 开 发简单 , 便于安装,可随留言板程序移植到不同的计算机上运行,便于学生在不同机房不同的机器间移动。 根据留言、回复功能需求, 设计数据库如下: 创建一个 liuyan.Accdb 的数据库 ,它包含两张数据表 ,分别为 "留言表"和"回复表",由于本文重点讲解留言,回复功能,所以数据表其他字段就不再详细介绍(图2)。

  三、功能设计与实现

  根据系统设计功能,本系统主要分为四个模块:注册登录模块,发表留言模块,回复留言模块,管理留言模块。

  (一)注册登录模块
  
  用户发表留言或回复留言之前要进行身份验证,没有注册过的用户必须先注册,输入正确的口令后,才可进行其他操作。 注册模块的核心思想是:在前台页面通过 SQL 语句向数据库中添加一条用户信息记录,该记录的内容需要使用 RegularExpressionValidator 控件、RequiredFieldValidator 控件、CompareValidator 控件等数据验证技术来判断输入的信息是否为空、数据格式是否正确等;在向数据库插入数据之前,还要考虑注册用户名已存在的问题, 要先检测数据库中是否已经存在该记录,若是存在,提示用户换一个注册用户名,要是不存在,则直接向数据库添加记录,核心代码是:

  sql="select * from userinfo where username=’”
& Textbox1.Text &”’"
mycommand=New OleDbCommand(sql,conn)
myread=mycommand.ExecuteReader()
if(myread.Read())
{Response.write(“用户已存在,请更换”)}
Else
{string cmdText="insert into 留言表(username,
pwd)values('"+username.text
+"','"+pwd.text+"')";?
OleDbCommand cmd=newOleDbCommand(cmdText,
Conn);
cmd.executeNonQuery();}
 

  登录过程的核心思想是: 在表单页面输入用户名和密码后,提交表单页面,检测用户输入的用户名和密码是否与数据库中的用户名密码一致, 一致则验证通过,否则提示用户名或密码错误。 后台执行下面的 SQL 语句,调用 read()方法,如果为真,则表示验证通过。sql="select * from userinfo where username='"& Username.Text &"' and pwd='"& pwd.text &""
  
  (二)发表留言模块

  发表留言功能就是在前台页面输入留言内容,提交后再将记录添加到数据库。 可以使用第三方组件 FreeTextBox, 它可以轻松地嵌入到 Web Forms中,实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web 系统中都会有用途。

  (三)回复留言模块

  该模块主要包含显示留言和回复留言功能两大功能。 经验证通过的访问者,可以查看留言、回复留言,管理员可以对所有留言和回复进行编辑操作。 本模块使用 Datalist 控件实现数据绑定显示留言内容,在它的项目模板里嵌套 GridView 控件,用于显示回复内容,从而实现主从、表分级数据显示,控件嵌套设计如图 3 所示,具体思路如下。

  首先,在页面中布置一个 Datalist 控件,将数据库留言表中的留言人,留言主题,留言内容等绑定到该控件,用于显示留言内容,例如:<asp:Label ID="留言人"runat="server" Text='<%# Eval("username")%>'. 使用 VS2008 里包含的AccessDataSource 控件能很容易的实现该功能,它能将 Access 数据库中的数据提取至 ASP.NET(。aspx)页面。 其属性设置简单灵活, 如用 DataFile 属性用来指向计算机上 Access数据库文件,用SelectCommand 属性设定一个显示需要返回的结果集 ( 表和列 ) 的语句 , 注意SelectCommand 必须使用SQL 语法来定义,此部分的核心代码如下:.

  <asp:accessdatasource id = "AccessDataSource"runat="server" selectcommand="Select * From 留言表" datafile="~/App_Data/liuyan.accdb">

  </asp:accessdatasource>

  <asp:Datalist id = "NorthwindProductsGridView"runat="server" datasourceid="AccessDataSource">

  </asp:Datalist>

  其次, 正确设置 AccessDataSource 数据源和Datalist 控件后,页面已经能显示数据库中的留言内容 , 再 Datalist 控件的项目模板里嵌套一个GridView 控件用于显示从表数据, 也就是显示回复的记录。 再添加两个 Button 按钮,和一个 TextBox 控件,两个按钮用于"回复"和"提交"操作,"提交"按钮和 TextBox 控件设置默认隐藏,当单击"回复"时,"提交"按钮和回复文本框显示出来,在文本框内输入数据,当单击"提交"按钮时,将回复数据添加到数据库。 使用 AccessDataSource 完成数据源的配置,嵌套的 GridView 控件核心源码部分:

  <asp:GridView ID="GridView1" runat="server"AutoGenerateColumns = "False" DataKeyNames= " 回 复 ID" DataSourceID = "AccessDataSource2"Width="410px">

  <asp:CommandField ShowDeleteButton = "True"ShowEditButton="True" />

  <asp:BoundField DataField = " 回 复 内 容 "HeaderText="回复内容" SortExpression="回复内容"/></asp:GridView>

  单击"提交"按钮,首先要在 Datalist 控件中找到该按钮和其他嵌入进去的控件,使用 FindControl 方法,例如:

  Dim huifu As Button =e.Item.FindControl(huifu")//找"回复"按钮Dim tjly As TextBox=e.Item.FindControl ("tjly")//找"提交留言"按钮找到控件后,再激活控件事件,向数据库中添加留言记录。

  AccessDataSource1.InsertCommand = "insert into回复表(ID,Subject,Content,username) values ('"& ID.Text &"''" &Subject.Text & "','" & Content.Text & "','" &username.Text & "')"AccessDataSource1.Insert()此处 ID 为发起留言的用户的留言 ID, 不是回复留言的留言 ID,即主表的留言 ID,不是从表的回复 ID,一定不能混淆。

  从表的数据源要根据主表动态选择, 在设置从表 AccessDataSource 配置 SQL 语句时, 添加 Where子句处,要设置源为"Control",参数属性"控件 ID"设置为图 3 中的"留言 ID",前台源码如下:

  <asp:AccessDataSource ID="AccessDataSource2"runat="server"DataFile = " ~/liuyan.accdb" DeleteCommand = "DELETE FROM [回复表] WHERE [回复 ID] = ? "InsertCommand="INSERT INTO [回复表]([回复ID],[回复内容]) VALUES(? ,? )"SelectCommand="SELECT [回复 ID],[回复内容]

  FROM [回复表] WHERE([留言 id] = ? )"UpdateCommand="UPDATE [回复表] SET[回复内容]=? WHERE [回复 ID]=?">

  可以看出通过 GridView 控件的嵌套,主表与从表通过留言 ID 相关联,很好的实现了留言表(主表)和回复表(从表)在同一个页面中的显示,具有显示直观、操作简便的优点。

  (四)管理留言模块。

  本模块的主要功能是管理留言。 管理员可以对所有的留言信息进行编辑、删除等操作。GridView 控件"任务"选项卡里可以设置控件的编辑、删除、排序、分页等功能,只需要设置好数据源即可,数据源核心代码为:

  <asp:AccessDataSource ID="AccessDataSource1"runat="server"DataFile="~/App_Data/liuyan.mdb"DeleteCommand = "DELETE FROM [ 留言表 ]

  WHERE[ID]=? "InsertCommand="INSERT INTO [留言表]([Subject],[Content]) VALUES(? ,? )"SelectCommand="SELECT * FROM [留言表]"UpdateCommand="UPDATE[留言表]SET [Subject]

  =? WHERE [ID]=? ">

  </asp:AccessDataSource>

  四、总结

  主从表的数据查询与显示模式在实际的项目开发中应用特别普遍,在进行控件嵌套和数据绑定时,一定要区分好主从控件的关系, 注意嵌套控件的获取方法。 本文介绍的方法没用采用过多的编码,充分利用了 AccessDataSource 控件, 很好的解决数据筛选与分级显示的问题, 这种方法在教学上和项目开发上都取得了良好的效果。

  参考文献:
  [1]莫学值。 谈在。NET 平台中 DataList 控件嵌套的应用[J].办公自动化,2011,(24):53-55.
  [2]蒋昀昕。基于 ASP.NET 技术的留言板系统的设计与实现[J].电脑与电信,2013,(11):44-46.

相关标签:asp毕业论文
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站