您的位置:首页精文荟萃软件资讯 → ASP进阶教程Ⅸ:留言查询功能(一)

ASP进阶教程Ⅸ:留言查询功能(一)

时间:2004/10/7 19:17:00来源:本站整理作者:蓝点我要评论(0)

当有一天,你的心情突然变得很坏,但是巧合的是,在你的留言簿中你的网友留了一句很让你振奋的话,于是你很快就重拾了快乐的心情。但是在不久后你又一次心情变坏,但是这次却没有上次那么幸运,因为没有人给予你鼓励,于是你自然就想再看一看上次那句令你很受振奋的话。这时你就会想:假如我的留言簿有留言查询功能就好了!





  为了能达成你的心愿,于是我决定在本章教程为你解说具有留言查询功能的留言簿程序。在讲解之前,让我们还是先来学习将在源程序中用到的COMMAND对象。

  



  首先让我们先来了解一下Command对象所提供的属性和方法以及它们的相应功能





ActiveConnection属性--建立与Connection通道的链接关系

CommandText属性--指定数据查询信息

CommandTimeout属性--开始执行数据查询后允许继续执行的最长时间

CommandType属性--指定数据查询信息的类型

Prepared属性--指定数据查询信息是否要先行编译

CreateParameter方法--建立一个新的参数对象

Execute 方法--对数据库提出数据查询  





  Command对象也是ADO对象集合的一员,它主要用来控制对数据库发出的请求信息,告诉数据库:“要哪个数据表里的数据?要什么字段内的数据?数据必须符合什么限制?请把这些符合我要求的数据全部存放在Recordset对象内返回回来!”那么说到底,Command对象的功能就是执行SQL(Structured Query Language结构式查询语言,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具;是一种特定类型的数据库--关系数据库)命令。假如你是一位比较细心的人,你一定还记得我在第三章中其实就已经用上了SQL命令,于是你就会对我发问:“你当时并没有用到Command对象呀?”





  确实,没有Command对象我们也一样可以执行SQL命令。我们利用Connection对象或是利用Recordset对象同样可以执行SQL命令。方法如下所示:







Set rs = conn.Execute(SQL命令)

' 利用Connection对象执行Select SQL命令,然后将结果指定给Recordset对象。

conn.Execute SQL命令

' 利用Connection对象执行数据操作的SQL命令。

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open SQL命令,conn





' 先建立Recordset对象,再执行SQL命令选取数据。

利用Command对象又是如何来执行SQL命令的呢?大家请看:

Set cmd = Server.CreateObject("ADODB.Command")

Set cmd.ActiveConnection = conn

cmd.CommandText = sql

Set rs = cmd.Execute  





' 可见利用Command对象来执行SQL命令,得先将Connection对象及SQL命令设置给对象Command的ActiveConnection及CommandText属性,然后才执行cmd.Execute函数。





  由上述我们可以知道,原来使用Recordset对象和使用Command对象来执行SQL命令,本质都是一样的。既然如此,那么我们为什么还要利用Command对象呢?为了说明这个问题,我分别用两种不同的方法来为留言簿添加留言查询功能,其中查询“留言簿过去五天留言记录”和“留言记录日期查询”是利用Command对象来执行SQL命令的,而“留言者姓名查询”和“最新十条留言记录”的查询则是利用Recordset对象来执行SQL命令。



  讲了这许多也该入正题了,我们首先来学习的是利用Recordset对象来实现“留言者姓名查询”和“最新十条留言记录”的查询。以下我们还是通过分步骤的方法来进行说明。



步骤一: 首先我们得设计一个留言查询的界面(Datesearch.asp),如下图所示:











步骤二:利用Recordset对象来执行SQL命令,实现“最新十条留言记录”的查询。

Set conn = Server.CreateObject("ADODB.Connection")

DBPath = Server.MapPath("book2.mdb")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

sql ="select top 10 * from guestbook order by ID Desc"  





  这里用“ order by ID Desc”表示按照“ID”字段从大到小排序。因为在数据库中我将ID字段的数据类型设为“自动编号”,留言记录的ID将按先后从小到大进行排序,所以要查询最新的十条留言即是查询最后的十条ID的记录。

Set rs = conn.Execute( sql )



  利用Recordset对象来执行SQL命令,实现“留言者姓名”的查询的原理与上述一致,程序如下所示:





namesearch = request.form("name")

namesearch = Replace(namesearch,"'","''")

'还记得我在第三章中介绍SqlStr函数时的说明吗?忘了就到回去看看吧。

Set conn = Server.CreateObject("ADODB.Connection") DBPath =Server.MapPath("book2.mdb")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

sql ="select * from guestbook where 姓名 = '"&namesearch&"' order by ID Desc"

Set rs = conn.Execute( sql )  





步骤三:设计查询结果的Web页面(Search.asp)。





< %

Sub Search( rs )

Response.Write "< CENTER>< table border=2 width=90% cellpadding=2 cellspacing=2 bordercolorlight=#000000 bordercolordark=#FFFFFF bordercolor=#FFFFFF bgcolor=#FFFFFF align=center>"

Response.Write "< TR BGCOLOR=#33CCCC>"

For i=0 to rs.Fields.Count-1

Response.WRITE "< TD>" & rs.Fields(i).Name & "< /TD>"

Next

Response.Write "< /TR>"

'" & rs.Fields(i).Name & "表示显示数据表的“字段抬头”

While Not rs.EOF

Response.Write "< TR>"

For i=0 to rs.Fields.Count-1

Response.WRITE "< TD>" & rs.Fields(i).Value & "< /TD>"

Next

Response.Write "< /TR>"

rs.MoveNext

Wend

Response.Write "< /TABLE>< /CENTER>"

' " & rs.Fields(i).Value & "表示显示数据表的“数据字段内容”

End Sub

%>  


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本