ASP期末课设学习论坛系统Word文件下载.docx

上传人:b****1 文档编号:5199841 上传时间:2023-05-04 格式:DOCX 页数:15 大小:128.52KB
下载 相关 举报
ASP期末课设学习论坛系统Word文件下载.docx_第1页
第1页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第2页
第2页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第3页
第3页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第4页
第4页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第5页
第5页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第6页
第6页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第7页
第7页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第8页
第8页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第9页
第9页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第10页
第10页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第11页
第11页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第12页
第12页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第13页
第13页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第14页
第14页 / 共15页
ASP期末课设学习论坛系统Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ASP期末课设学习论坛系统Word文件下载.docx

《ASP期末课设学习论坛系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《ASP期末课设学习论坛系统Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

ASP期末课设学习论坛系统Word文件下载.docx

ID

文章编号

长整型

Subject

文章标题

Char(50)

Sender

张贴者

Char(20)

Email

张贴者E-mail

Char(30)

(允许为空)

Body

张贴文章的内容

Char(255)

SendDate

张贴时间

日期/时间

Parent

回复文章的编号

三、结果及分析

程序运行结果抓图,主要代码及简单分析

一:

建立张贴页面

1设计输入表单

输入表单设计如下:

文章标题:

<

asp:

textboxid="

subject"

runat="

Server"

/>

RequiredFieldValidatorid="

valid1"

ControlToValidate="

>

(必要栏)

/asp:

RequiredFieldValidator>

p>

内容:

TextBoxid="

Body"

textmode="

MultiLine"

Rows=5

Width="

80%"

/>

valid3"

body"

RegularExpressionValidatorid="

Regular1"

Runat="

server"

ValidationExpression="

.{10,255}"

输入的字符数在~之间!

RegularExpressionValidator>

签下您的大名:

Send"

valid2"

嘿嘿,名字不能少哦!

您的邮件地址:

Email"

Regular2"

.{1,}@.{1,}\..{1,}"

请输入有效的电子邮件地址

Buttonid="

sub"

text="

张贴"

Onclick="

sent"

其中文章内容输入栏布置了两个验证控件:

一个控制该控件不能输入空值;

另一个控制文章内容在10个字符和255个字符之间。

为了防止用户在恶意灌水,所以不允许少于10个字符;

如果多于255个字符,Access2003中的字段将会溢出,所以设置不能多于255个字符。

2将数据存入数据库

单击“张贴”按钮,如果数据通过验证则将数据提交到数据库。

在提交数据之前,先要在数据库中获取当前最大的文章编号,用来生成新加入的文章的编号,具体方法如下所示:

SQLStr="

Selectmax(ID)asidFromcontent"

rd=Cmd.ExecuteReader()'

执行SQL指令,并将其结果设定给DataReader

IfNotIsDBNull(rd.Read())then

maxid=rd.Item("

id"

)+1

Else

maxid=1

EndIf

首先检测当前数据表中是否有数据,如果没有数据,IsDBNull(rd.Read())返回true,同时将新插入的文章编号设为1;

如果有数据,则取出最大的编号,在其上加1,生成新文章的编号。

二:

实现分页显示

1.显示文章内容

下面要对论坛进一步改进使之能显示文字的内容,改进后的显示效果如下图所示。

所用的Tree函数的完整代码如下所示:

Subtree(lasttabAsString)

DimrowidAsInteger'

定义记录录号

Dimcontent,img,aux,item,bodyAsString'

HTML元素的ID

DimtrAsdataRow

DimtablenameAsString'

定义树的表名

Response.Write("

tableborder=0>

"

)'

遍历当前表中的记录

ForEachtrInds.Tables(lasttab).rows

rowid=tr.Item("

ID"

)'

将当前记录的子节点生成一张表

tablename="

table"

&

rowid

SQLstr="

Select*fromcontent"

SQLstr&

="

whereParent="

da=NewOleDbDataAdapter(SQLstr,conn)

da.Fill(ds,tablename)

'

检测时候存在子节点,如果存在继续使用递归来生成树,如果不存在,退出递归

Ifds.Tables(tablename).rows.count=0then

如果当前节点已经是叶节点,显示当前节点,退出递归

tr>

td>

img="

img"

item="

Item"

Content="

content"

body="

palign='

right'

imgid="

Img&

"

src='

minus.gif'

WIDTH='

9'

HEIGHT='

/p>

/td>

tdid="

item&

language='

JavaScript'

onMouseUp='

turnout("

body&

);

style='

CURSOR:

hand'

fontface='

楷体'

size='

2'

strong>

tr.Item("

)&

——"

Sender"

SendDate"

/strong>

/font>

/a>

Response.Write("

<

/tr>

response.write("

tdcolspan=2id="

DISPLAY:

none'

tableborder=0bgcolor='

grey'

fontsize=1>

/table>

如果不是叶节点,则继续递归显示

Else

content="

aux="

Aux"

显示信息头

tdlanguage='

turnit("

&

Content&

"

Img&

Aux&

plus.gif'

ahref=mailto:

寄信给作者<

ahref=post.aspx?

ID="

Tr.Item("

subject="

tr.item("

回复此文<

将递归深度加深

tree(tablename)

next

/Table>

EndSub

三:

实现分页功能

1初始化记录范围

为了实现分页,首先需要知道当前记录的范围,才能决定下一页或上一页的记录范围,因此我采用TextBox控件记录当前的记录范围。

在表单中这两个控件如下布置:

Textboxid=”lastno”visible=falserunat=”server”/>

textboxid=”priorno”visible=falserunat=”server”/>

将这两个TextBox控件的Visible属性设为False,lastno用于记录当前最后一条记录,priorno用于记录当前的第一条记录。

首次浏览论坛内容时需要在Page_Load事件中初始化记录范围,此后则在“上一次”和“下一次”按钮的事件中确定记录范围。

Page_Load事件修改后的完整代码如下:

SubPage_Load(SenderAsObject,eAsEventargs)

'

首先建立数据连接

conn=NewOledbConnection()'

建立一个oledbConnection对象

设定连接字符串ConnectionString

conn.ConnectionString="

Provider=Microsoft.Jet.OLEDB.4.0;

_

DataSource="

Server.MapPath("

Discuss.mdb"

打开连接

conn.Open()

选出最近的十条记录,按照Id的降序排列

SQLstr="

Selecttop10*fromcontent"

SQLstr&

whereparent=0OrderbyIDdesc"

da=NewOleDbDataAdapter(SQLstr,conn)

da.Fill(ds,"

head"

对于一条记录生成一颗树

Tree("

conn.close()

Endsub

2实现分页

1.布置分页按钮

要实现分页功能,还需要布置分页按钮“上一页”和“下一页”,代码如下所示:

Formrunat="

linkbuttonid="

prior"

上一页"

OnClick="

prior_click"

nxt"

下一页"

next_click"

Textboxid="

lastno"

visible=falserunat="

priorno"

/Form>

在“上一页”按钮中触发prior_click函数,在“下一页”按钮中触发next_click函数。

2.添加分页时间

(1)浏览上一页。

首先添加“上一页”按钮事件,所使用的SQL语句如下所示:

=”whereparent=0”

=”andID<

”&

priorno.text

然后对priorno和lastno两个TextBox控件重新置数,记录上一页中显示主体的范围:

记录当前的最后一个记录号

lastno.text=ds.Tables("

).rows.Item(0).Item("

记录当前的第一个记录号

dimcountasinteger

count=ds.Tables("

).rows.count-1

priorno.text=ds.Tables("

).rows.Item(count).Item("

考虑到如果第一页仍然使用Tree函数来生成主题树会出错,所以加入如下判断语句:

ifds.Tables("

).rows.count=0then

Response.Write("

已经到了第一页!

Else

Tree(“head”)

Endif

如果到了第一页,则会显示如图所示的页面。

(2)浏览下一页。

和浏览上一页中的Prior_Click函数一样,生成Next_Click函数。

四:

查询论坛内容

1布置查询表单

在表单中要布置3项查询内容:

按时间查询、按主题查询、按作者查询,此外还需要布置“重新查询和“返回主界面”两个按钮,这两个按钮具体下面再进行介绍。

布置好的查询表单如下图所示:

表单布置代码如下:

panelid="

panel1"

按时间查询:

tm1"

~

tm2"

buttonid="

tm"

查询"

tm_click"

按主题查询:

textBoxid="

sub1"

onclick="

sub_click"

按作者查询:

sd1"

sd"

sd_Click"

panel>

rset"

重新查询"

rset_click"

rback"

返回主界面"

rback_click"

在没有进行查询或者查询完毕后要隐藏查询表单,所以将查询表单布置在一个Panel控件中,这样只需要控制Panel的显示或隐藏即可控制查询表单的显示和隐藏了。

执行查询的过程如下:

1.按时间查询

用户在使用学习论坛时,常常需要查询某一段时间内的讨论问题来获取必要的信息,因此到下面几点:

检测时间是否有效。

建立查询的SQL语句。

建立数据库连接。

执行查询和清理现场。

最终设计出按时间查询的tm_Click函数,具体代码在程序中。

2.按主题查询

3.按作者查询

按作者查询比上面两项查询都要复杂一些。

因为不能只查找该作者张贴的主题,还要查找该作者所有回复的文章,所以不能再调用Tree函数来生成讨论树,必须另外书写显示记录的代码。

(1)建立SQL语句。

(2)建立数据连接并执行查询。

(3)显示查询结果。

4退出查询

在查询完毕之后需要退出查询或者继续查询其他数据,这就是“重新”查询和“返回主页面”两个按钮的功能。

1.重新查询

重新查询的主要工作就是清空查询表单和当前页面的内容。

2.返回主页面

单击“返回”主页面按钮将触发Rback_click函数,将会退出,具体代码如下:

返回主界面

SubRback_click(senderasobject,easeventargs)

retrieve()

显示上一页和下一页按钮

prior.visible=true

nxt.visible=true

四、总结

程序的优点缺点,自己的体会

该程序构成了一个简单的学习论坛系统。

可以方便得供大家进行学习交流。

但还有很多不足:

如没有设置管理员对其中的内容进行筛选等等,总之功能比较简单,只可以适合用来少数人构建的学习论坛系统。

在经过一个多星期的努力以及老师的精心指导,终于成功设计出一个功能完整的在线学习系统。

首先,十分感谢王晓菊老师上课过程中诲人不倦的教导,使得在编写过程之中节约了不少时间和精力,而且激发了不少新的灵感。

其次,在这个理论联系实践的过程中,不仅对所学的知识点有了更加深刻的理解,而且慢慢体会到网络编程的那种快乐,尤其是在辛勤劳动后能够得到令人欣喜的成果,让我感到很充实,很满足。

最后衷心地希望老师身体健康,万事如意。

教师评价

评定项目

A

B

C

D

算法正确

界面美观,布局合理

程序结构合理

操作熟练

语法、语义正确

解析完整

结果正确

文字流畅

报告规范

题解正确

其他:

评价教师签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2