用ASP建立一个留言簿实例.docx

上传人:b****4 文档编号:4257179 上传时间:2022-11-28 格式:DOCX 页数:27 大小:23.74KB
下载 相关 举报
用ASP建立一个留言簿实例.docx_第1页
第1页 / 共27页
用ASP建立一个留言簿实例.docx_第2页
第2页 / 共27页
用ASP建立一个留言簿实例.docx_第3页
第3页 / 共27页
用ASP建立一个留言簿实例.docx_第4页
第4页 / 共27页
用ASP建立一个留言簿实例.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

用ASP建立一个留言簿实例.docx

《用ASP建立一个留言簿实例.docx》由会员分享,可在线阅读,更多相关《用ASP建立一个留言簿实例.docx(27页珍藏版)》请在冰豆网上搜索。

用ASP建立一个留言簿实例.docx

用ASP建立一个留言簿实例

用ASP建立一个留言簿实例

一、建立ACCEES数据库

打开ACCEES,新建一个数据库,文件名字为gustbook.mdb,使用设计器创建新的表guestbook,在设计视图中添加五个字段,其中ID表示编号,name表示姓名,Tel表示电话号码,Message表示信息,Time表示时间。

各字段主要参数设置如下,其它参数可以用默认值。

字段名称

数据类型

字段大小

默认值

ID

自动编号

长整型

name

文本

20

Tel

数字

长整型

Message

备注

Time

时间/日期

 =Now()

完成后,在字段ID上击右键,选“主键”设为主键。

返回数据表视图,添加三个记录。

二、连接数据库和读取记录

建立一个主程序index.asp,以上面建立的ACCEES数据库为基础,用asp来连接数据库和读取记录。

index.asp代码:

<%

setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

exec="select*fromguestbook"

setrs=server.createobject("adodb.recordset")

rs.openexec,conn,1,1

%>

无标题文档

<%

dowhilenotrs.eof

%>

<%=rs("name")%>

<%=rs("tel")%>

<%=rs("message")%>

<%=rs("time")%>

<%

rs.movenext

loop

%>

上例中:

setconn=server.createobject("adodb.connection")定义了一个adodb数据库连接组件;

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")连接数据库;

exec="select*fromguestbook"设置查询数据库的命令,select后面加的是字段,如果都要查询的话就用*,from后面再加上前面建立的表的名字gustbook;

setrs=server.createobject("adodb.recordset")定义一个记录集组件,所有搜索到的记录都放在这里面;

rs.openexec,conn,1,1是打开这个记录集,exec就是前面定义的查询命令,conn就是前面定义的数据库连接组件,后面参数“1,1”,这是读取,后面讲到修改记录就把参数设置为1,3;

<%

dowhilenotrs.eof

%>

<%=rs("name")%>

<%=rs("tel")%>

<%=rs("message")%>

<%=rs("time")%>

<%

rs.movenext

loop

%>

这一段读取记录。

在一个表格中,用4列分别显示了上次建立的表里面的四个字段,用do循环,notrs.eof的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,<%=%>就等于<%response.write%>用于在html代码里面插入asp代码,主要用于显示变量。

三、在数据库写入记录

建立一个写数据的表单提交文件wirte.htm和添加记录文件wirte.asp。

wirte.htm代码:

无标题文档

name


tel


message



wirte.asp代码:

<%

setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

name=request.form("name")

tel=request.form("tel")

message=request.form("message")

exec="insertintoguestbook(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"

conn.executeexec

conn.close

setconn=nothing

%>

上面,exec里面的是执行的命令,insertinto后面加的是表的名字,后面的括号里面是需要添加的字段,不用添加的或者字段的内容就是默认值的可以省略。

这里的变量一定要和ACCESS里面的字段名对应,否则就会出错。

values后面加的是传送过来的变量。

在ASP里面不能嵌双引号,所以可以用'代替双引号,放在双引号里面,连接两个变量用+或者&,name就是表单传来的变量,在这个变量外面加两个'',表示是字符串了,后面的tel是数字型变量所以不需要外面包围''。

大家慢慢分析这句话,假设表单传来的数据name="aaa",tel=111,message="bbb",这句话执行时为:

"insertintoguestbook(name,tel,message)values('aaa',111,'bbb')"。

接下来的conn.execute就是执行这个exec命令

rs.close

setrs=nothing

conn.close

setconn=nothing

把打开的数据库关闭,把定义的组件设置为空,这样可以返回资源。

记住,次序不可以颠倒!

四、在数据库删除记录

建立一个删除数据的提交页面del.htm和删除记录文件del.asp。

del.htm代码:

无标题文档

要删除的记录号:

del.htm提交的是记录的ID。

del.asp代码:

<%

setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

exec="delete*fromguestbookwhereid="&request.form("id")

conn.executeexec

%>

这个ASP文件删除了del.htm提交的ID的记录。

删除记录的操作语句为:

exec="delete*fromguestbookwhereid="&request.form("id")

五、在数据库修改记录

建立一个修改数据的提交页面modify.htm和写入修改记录的文件modify.asp及保存修改记录的文件modifysave.asp。

modify.htm代码:

无标题文档

要修改的记录号:

modify.asp代码:

<%

setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

exec="select*fromguestbookwhereid="+request.querystring("id")

setrs=server.createobject("adodb.recordset")

rs.openexec,conn,1,1

%>

无标题文档

">

">

">

">

Modifysave.asp代码:

<%

setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

exec="select*fromguestbookwhereid="&request.form("id")

setrs=server.createobject("adodb.recordset")

rs.openexec,conn,1,3

rs("name")=request.form("name")

rs("tel")=request.form("tel")

rs("message")=request.form("message")

rs.update

rs.close

setrs=nothing

conn.close

setconn=nothing

%>

在这里,rs.openexec,conn,1,3后面的参数是1,3,修改记录就要用1,3。

记录集是rs,rs("aa")就是当前记录aa字段的东西,让它等于新的数据request.form("aa")就修改了,rs.update就是保存修改过的记录

六、查询数据库记录

建立一个检索数据的提交页面search.htm和搜索记录的文件search.asp。

search.htm代码:

无标题文档

搜索:


name=

andtel=


搜索采用name和tel两个条件,and说明要两个条件都满足,具体在earch.asp中设定条件,这里只是提交数据。

earch.asp代码:

<%

name=request.form("name")

tel=request.form("tel")

setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

exec="select*fromguestbookwherename='"+name+"'andtel="+tel

setrs=server.createobject("adodb.recordset")

rs.openexec,conn,1,1

%>

无标题文档

<%

dowhilenotrs.eof

%>

<%=rs("name")%>

<%=rs("tel")%>

<%=rs("message")%>

<%=rs("time")%>

<%

rs.movenext

loop

%>

语句:

exec="select*fromguestbookwherename='"+name+"'andtel="+tel的where后面加上的是条件,与是and,或是or。

如果提交的name是张三,tel是111,这句话的意思就是搜索name是张三的,并且电话是111的记录。

如果要搜索name是张三或电话是111的记录,即只要满足其中一个条件就显示出来,可以这么写:

exec="select*fromguestbookwherename='"+name+"'ortel="+tel

如果要搜索一个字段里面是不是包含一个字符串就可以这么写:

whereinstr(name,a)也就是搜索name里面有a(张三)这个字符串的人。

如果条件不匹配,程序会出错。

七、分页技术

下面我们介绍一下ASP里面的分页技术,先说说基本程序,具体操作代码整合在下一节,以节省篇幅。

<%

exec="select*fromgustbook"

setrs=server.createobject("adodb.recordset")

rs.openexec,conn,1,1

rs.PageSize=3

pagecount=rs.PageCount

page=int(request.QueryString("page"))

ifpage<=0thenpage=1

ifrequest.QueryString("page")=""thenpage=1

rs.AbsolutePage=page

%>

rs.pagesize设置一个页面里面显示的记录数,pagecount是我们自己定义的一个变量,rs.pagecount是记录的个数,page也是我们自己定义的一个变量,我们下一页的链接可以设置为index.asp?

page=<%=page+1%>,下一页的链接可以设置为index.asp?

page=<%=page-1%>,这样当按下链接的时候调用页面自己,page这个变量就+1或者-1了,最后我们让rs.absolutepage(当前页面)为第page页就可以了。

ifrequest.QueryString("page")=""thenpage=1,这句话的作用就是我们打开index.asp的时候没有跟随page变量,自动设置为page=1,防止出错,还有当我们if....then...放在一行的时候endif可以省略。

下面说一种特殊情况:

ifpage=1andnotpage=pagecount,这个时候没有上一页,但是有下一页

elseifpage=pagecountandnotpage=1,这个时候没有下一页,但是有上一页

elseifpage<1,这个时候没有任何记录

elseifpage>pagecountthen,这个时候没有任何记录

elseifpage=1andpage=pagecount,这个时候没有上一页,没有下一页

else,这个时候有上一页,也有下一页。

下面看一段显示1到n页,且每一个数字点击以后就出现这个数在代表的页面的代码,很常见哦。

<%fori=1topagecount%>

page=<%=i%>"><%=i%><%next%>

for....next是循环从i=1开始,循环一次加1到pagecount为止。

八、程序的简单整合

以上介绍了一个最简单的ASP程序,是ASP的精髓,每一个ASP大型程序都包含了它。

下面我们把分开的内容做一个简单的整合和美化,以便进一步增加其实用性。

先新建一个conn.asp的文件,用来配置数据库的连接。

把数据库的连接独立出来供其它程序调用,可使得程序简洁易读。

conn.asp代码:

<%setconn=server.createobject("adodb.connection")

conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("gustbook.mdb")

%>

在Index.asp中,对添加记录、删除记录、修改记录、查询记录和分页技术进行简单的整合,使其集中在一个页面中。

Index.asp代码:

--#includefile="conn.asp"-->

<%

exec="select*fromguestbook"

setrs=server.createobject("adodb.recordset")

rs.openexec,conn,1,1

rs.PageSize=3

pagecount=rs.PageCount

page=int(request.QueryString("page"))

ifpage<=0thenpage=1

ifrequest.QueryString("page")=""then

page=1

endif

rs.AbsolutePage=page

%>

浏览记录

collapse"bordercolor="#99CCFF">

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1