ASP_SQL_Server制作留言板的完整小例子 dw制作asp动态留言板

写写关于SQLServer数据库的简单使用过程的教程,也算一个小总结!记录一些常用的方法,关键字,单词等,供以后查阅用!同时希望对大家的学习有一定帮助!不要忘了就好。

我喜欢小例子带注释的学习方法!所以自己总结起来学习的过程也总是配着例子,边做边记……我们用ASP+SQLServer做个简单的留言板为例!当然像这样的例子有些地方实际中并没有必要用到这么“深”的东西,但是我们是为了学习,尽量的使用、体验更多的知识。如果你的SQLSERVER的初学者,完成这个例子我相信一定对你学习SQLSERVER有很大帮助!

学习本教程需要:了解SQL语句和基本语法;了解SQLServer查询分析器的作用,会初步使用;熟悉ASP。

本教程设及到:使用SQLServer查询分析器创建数据库;SQL查询语句常用的一些属性值;触发器创建和使用;存储过程的创建,ASP使用存储过程。

正文开始:

一、创建一个数据库

打开SQLSERVER查询分析器,创建一个feedback数据库,该数据库的主数据文件的逻辑名称是feedback,操作系统文件是feedback.mdf,大小是15MB,最大是30MB,以20%的速度增加;该数据库的日志文件的逻辑名称是feedback_log,操作系统文件是feedback.ldf,大小是3MB,最大是10MB,以1MB的速度增加。

Create Database feedback--创建数据库feedback

On {语法错误?}

Primary (

Name=feedback,

Filename='d:feedback.mdf',--数据库操作系统文件的目录和名称

Size=15MB,

Maxsize=30MB,

Filegrowth=20%)

Log On

(Name=feedback_log,

Filename='d:feedback.ldf',

Size=3MB,

Maxsize=10MB,

FileGrowth=1MB)

USEfeedback--打开数据库

二、创建两个表,一个用来作留言,一个作留言的回复!

1、创建第一个表:Feedback存放留言的记录!

Drop TableFeedback--如果已经有此表将其删除,第一次创建,不用这句!

GO

Create Table Feedback--创建表FeedBack

(

Feedback_IDintPrimaryKey Identity (1, 1) NotNull,

--字段Feedback_ID,主关键字,自动累加,初值为1,自动加1,不能为空--逗号可不加

Title nvarchar(256) NotNull,--字段Title留言标题,类型nvarchar大小256,不能为空

Content text Not Null,--字段Content--留言内容,类型文本字段,不能为空

subFeedback_countintdefault 0--字段subFeedback_count回复的条数!默认值0

)

2、插入一条新记录,并显示出来

Insert into Feedback

(Title,Content)

values

('here is Title','This is a test')

GO

select * from Feedback

3、创建第二表:subFeedback存放留言的回复

Create Table subFeedback

(

subFeedback_ID int PrimaryKey identity(1,1) Not Null,

Feedback_ID int Foreign keyreferences Feedback(Feedback_ID),

--定义外键关联到表Feedback的主键Feedback_ID

Content text NotNull

)

三、创建两个触发器

1、第一个触发器(级联删除触发器):当删除Feedback表中的记录时,自动删除subFeedback中外键对应相同的所有记录Create Trigger Trigger_delete_Feedback

ON Feedback

--在表feedback上建触发器Trigger_delete_Feedback

InsteadOFDelete

--INSTEADOF触发器表示并不执行其所定义的

操作(INSERT、 UPDATE、DELETE),而仅是执行触发器本身

--或者说发生Delete事件时执行,该触发器AS后语名会替换过delete语句的执行

AS

Delete From subFeedback where Feedback_ID in(selectFeedback_ID from deleted)

--删除表subFeedback外键与删除feedback主键相同的值

Delete From Feedback where Feedback_ID in(selectFeedback_ID from deleted)

2、第二个触发器:当subFeedback有新增记录时,Feedback.subFeedback_count字段记数增加!Create Trigger Trigger_update_subFeedback

ON subFeedback

Forinsert

--注间和InsteadOF的区别,For是当insert语句执行完后再执行解发器AS后的语句

AS

update Feedback set subFeedback_count=subFeedback_count+1where Feedback_ID in(select Feedback_ID from inserted)

另外:如果考虑的较周全点,当subFeedback中的记录删除时,Feedback_subFeedback_count字段还要减1,触发器的写法和上面一相似,为减短教程,就不在增加!

四、建立两个存储过程用来保存增加的Feedback和subFeedback记录

Create Procedure proc_insert_Feedback--创建存储过程proc_insert_Feedback

@Title nvarChar(256),@Contenttext--定义参数变量

AS

Insert into Feedback (Title,Content)values(@Title,@Content) --执行语句

GO

Create Procedure proc_insert_subFeedback

@Feedback_ID int,@Content text

AS

Insert into subFeedback (Feedback_ID,Content)values(@Feedback_ID,@Content)

五、建立asp文件,完成留言板制作!

1、创建conn.asp文件,与数据库连接。<%

dim conn

setconn=Server.createobject("ADODB.CONNECTION")'创建连接对象

conn.open="Provider=SQLOLEDB; Data Source=127.0.0.1;"& _

"Initial Catalog=Feedback; User ID=sa;password=sa;"

'打开连接。换成你的server-IP(如果也是本机不用修改),数据库用户名,密码!

%>

2、创建List.asp显示留言,内容。这里我把增加的Form也加到了文件底部,减少文件的个数。<!--#includefile="conn.asp"--><!--用includefile包含数据库连接文件。-->

<%

SQL="select * from Feedback"

Setrs=Server.CreateObject("ADODB.Recordset")'创建数据集rs

ASP_SQL_Server制作留言板的完整小例子 dw制作asp动态留言板

rs.openSQL,conn,1,3'打开

if not rs.eof then

output=""'定义字符串变量output,输出

do while notrs.eof'外循环开始

output=output&rs("title")

output=output&"--<ahref=Feedback.asp?feedback_ID="&rs("feedback_ID")&"&title="&rs("title")&">回复该留言</a>["&cstr(rs("subFeedback_count"))&"]<hr>"

'建立回复留言的链接,并把要回复的留言的记录Feedback_ID和Title传给Feedback.asp

'Feedback用来标志是回复了哪条记录,增加数据库用!Title用来显示回复的哪条记录,给回复者看

output=output&rs("content")

output=output&"<br><br>"

sqlsub="select* from subFeedback whereFeedback_ID="&rs("Feedback_ID")

SetrsSub=Server.CreateObject("ADODB.Recordset")

rsSub.opensqlSub,conn,1,3

if notrsSub.eof then

j=1'为for语句定义变理

dowhile not rsSub.eof

fork=1 toj'贴子缩进,贴子越靠后,缩进量越大

output=output&""

next

output=output&"["&j&"]楼<spanstyle='word-wrap: break-word;'>"

output=output&rsSub("content")

output=output&"</span><br>"

j=j+1

rsSub.movenext

loop

endif

output=output&"<br>"

rs.movenext

loop

response.write output

else

response.write "无记录!"

end if

rs.close

set rs=nothing

%>

<script>

function chkform(){

//这个函数用来判断输入是否为空

//当然这里的判断还远远不够,比仿说还要判断字符的多少,是否有非法字符等

if (document.add.title.value==""||document.add.content.value==""){

alert("标题或内容不能为空,请输入!");

return;

}

document.add.action="add.asp";

document.add.submit;

}

</script>

<form name="add" method="post"action="javascript:chkfrom();">

标题<input type=text size="50"name=title><br>

内容<textarea name="content" cols="50"rows="8"></textarea><br>  

<input type="hidden" value="Feedback"name="table">

<!--上面是一个隐藏域,传递一个名为table,值为Feedback变量,让add.asp知道是编辑的Feedback表-->

<input type="submit" name=submitvalue="提交">

</form>

通过上面的list.asp文件,这时如果数据库有有数据,那么网页中就可以显示数据了,如果没有内容网页显示“无记录”,下边显示增加表单。

3、创建Feedback.asp文件,用来填写留言的回复!回复:<%=request("title")%>

<form name="add" method="post"action="add.asp">

内容<textarea name="content" cols="50"rows="8"></textarea><br>

<input type="hidden" name="table"value="subFeedback">  

<input type="hidden" name="Feedback_ID"value='<%=request.QueryString("Feedback_ID")%>'>

<input type="submit" name=submitvalue="提交">

</form>

4、创建add.asp文件,用来分别保存时Feedback,subFeedback的两个表的增加记录!这里请注意ASP调用SQLSERVER的存储过程的方法,会让程序变的很简洁! <!--#includefile="conn.asp"-->

<%

table=request.form("table")'用来判断是编辑的哪个表

if table="Feedback" then

title=cstr(trim(request.form("title")))

content=cstr(trim(request.form("content")))

'trim去掉字符串前后的空格,cstr数据类型转为字符型

iftitle<>"" andcontent<>"" then

Conn.Execute"proc_insert_Feedback'"&title&"','"&content&"'"

else

response.write"<script>alert('所需数据为空,请填写')</script>"

response.write"<script>history.go(-1)</script>"

response.end

endif

elseif table="subFeedback" then

Feedback_ID=trim(request.form("feedback_ID"))

content=cstr(trim(request.form("content")))

ifFeedback_ID<>"" andcontent<>"" then

Conn.Execute"proc_insert_subFeedback"&Feedback_ID&",'"&content&"'"

else

response.write"<script>alert('所需数据为空,请填写')</script>"

response.write"<script>history.go(-1)</script>"

endif

end if

response.redirect("List.asp")

%>

下载这四个ASP文件。

六、总结

好了,到这里这个简单的留言板就做完了。当然里面还有很多要改进的地方,比仿说列表页要分页。回复的内容太长的话,回复递进的效果就不明显。没有过滤html代码javascript代码。没有管理后台等等。不过如果你能做出这个留言板,只要再增强一下功能和安全,做出一个像样的留言板那应该是没问题的。

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/207316.html

更多阅读

扁平疣的治疗小偏方 治扁平疣要多少钱

  扁平疣是乳头状瘤疾病感染的皮肤疾病,好发于青少年,又称为青年扁平疣,它的发病与机体的免疫功能以及皮肤的搔抓关系较大。很多朋友不知道扁平疣的治疗偏方,下面我们就来一起了解下。  扁平疣的治疗小偏方  偏方一、取鲜藿香叶

水煮肉片的完整做法 水煮肉片的家常做法

水煮肉片的完整做法——简介水煮肉片是川菜的一种传统菜式,几乎四川家家户户都会做。水煮的特色是“麻、辣、鲜、烫”。现在各餐饮都可以吃到,冬天在家做着吃也很不错。水煮肉片的完整做法——工具/原料瘦肉(猪里脊肉)豆牙和海带等花

踏板摩托车省油的实用小方法 雅马哈踏板摩托车报价

踏板摩托车省油的实用小方法——简介踏板摩托车省油的小方法,对此提供一下个人的一些看法。踏板摩托车省油的实用小方法——工具/原料踏板摩托车个人的经验踏板摩托车省油的实用小方法——方法/步骤踏板摩托车省油的实用小方法 1

丰胸的日常小方法 丰胸妙招有哪些

丰胸的日常小方法——简介胸方法是多种多样,但是大多数是需要耗费海量的时间才能使你的胸部勉强增长点。但是下面小编给大家介绍的几种日常实用的丰胸小方法,让你们在平时少量的业余也能丰胸。丰胸的日常小方法——方法/步骤

冬季应该注意的安全小常识 冬季食品安全小常识

冬季应该注意的安全小常识——简介随着冬季的来临,用煤、电、火、气的使用量增多,一切不安全 隐患也相应增加。冬季取暖应把安全放在首位,应注意以下几点:冬季应该注意的安全小常识——方法/步骤冬季应该注意的安全小常识 1、一、煤火

声明:《ASP_SQL_Server制作留言板的完整小例子 dw制作asp动态留言板》为网友少妇杀手分享!如侵犯到您的合法权益请联系我们删除