首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 图形图象-> FIREWORKS教程
ASP应用中数据库记录的选取与过滤-ASP教程,ASP应用
作者:网友供稿 点击:23
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
一、说明
大多数最终用户都要求他们的web方案能够提供某种报表能力。使用html和asp,可以很容易地提供在表格中列出记录以及逐条浏览它们的能力。但用户往往要求能够通过下拉列表框(或其它选择方式)选择某一类别的记录,或者说,他们希望能够使用某种“查询界面”来建立和执行查询,而不必直接使用sql。本文演示运用asp技术建立可选择的记录过滤界面的一种方法。虽然这里讨论的解决方法相当简单,但使用类似的技术可以在任何web页面提供复杂的查询能力。
在为任何一个解决方法编码之前,都应该充分理解并记录最终用户的需求。对于本例来说,用户要求能够用指定类别名字的方法获取指定表的一组记录,他既可以选择所有的类别也可以选择某个特定的类别。为实现这个功能,我们使用一个“递归的”asp页面,它所提供的选择表单中包含了来自数据库的类别列表,根据表单所发送的数据提取结果记录集,结果记录将以表格的形式显示以方便用户察看。

二、构造过滤条件
对于这种数据库应用,首先应该了解所涉及的数据库表结构以及连接数据库系统所必须的连接参数。连接参数的指定方法在microsoft的asp联机文档中有很详细的说明,本文不再赘述。本例要用到的两个表为:document_category,它包含供用户选择的唯一的类别名字category_name;documents,它包含对应于类别名字的其它数据,字段包括category_name、file_name、comments、date_submitted等。
选择表单中的类别列表来自于类别表document_category的category_name字段,构造类别下拉列表框的代码如下,请注意这里要用到vbscript ado包含文件:


 <!-- #include file = "adovbs.inc" -->
 <%
 connstring = "dsn=localupload;"
 set conn = server.createobject("adodb.connection")
 conn.open connstring,,,adopenforwardonly
 set rs = server.createobject("adodb.recordset")
  首先获取用来填充下拉列表框的类别记录
  设置sql语句
 strsql = "select * from document_category order by category_name"
 
 rs.open strsql,conn, adopenstatic
 %>
 
 <form name="formcategory">
 
 <select name="qrycategory"
onchange="getfilter(this.form.qrycategory)">
 <option selected>请选择一个类别:
 <% do while not rs.eof
  response.write ("<option value=" & rs("category_name") & ">" _
& rs("category_name"))
  rs.movenext
 loop
 rs.close
 set rs=nothing
 %>
 </option>
 </select><br>
 </form>

select标记中的onchange用来提交html表单。当下拉列表框的值改变,javascript函数getfilter就会执行。使用类似的方法,可以将数据库表的记录用多个不同表单元素来描述(如第二个下拉列表框,单选按钮或复选框等等)。用户所选择的类别值将用来构造从数据库提取记录的sql select语句。

三、提交表单
这里我们要用到两个javascript函数来完成表单信息提交任务。getfilter函数用来将用户选择的类别值提交给页面本身,而getlistvalue函数则用来获取用户所选择的类别值。选用javascript实现这两个函数使得脚本能够在不同的浏览器上运行:
 <script language="javascript">
 function getfilter(listitem){
  var object = "";
  var listvalue = getlistvalue(listitem);
  document.formcategory.submit(listvalue);
 }
 function getlistvalue(list){
  var listvalue="";
  if (list.selectedindex != -1) {
  listvalue = list.options[list.selectedindex].value;
  }
  return (listvalue);
 }
 </script>

四、显示结果
   最后要做的就是构造查询并显示查询结果了。首先,查询的构造依赖于用户在下拉列表框中所选择的类别名字,这个查询只需一个简单的sql select语句,在where子句中指定用户所选择的类别即可。构造好查询之后就可以执行它了,如果没有符合要求的记录,则向用户显示一个提示信息;否则就显示这些记录。下面是完成上述任务的vbscript代码:
 <%
 if request.querystring("qrycategory") = "" then
  response.write("请从列表中选择一个类别.")
 else
  构造查询
  set rs = server.createobject("adodb.recordset")
  设置sql语句
  strsql = "select documents.file_name, documents.comments,"
strsql = strsql & "documents.date_submitted "
  strsql = strsql & "from documents "
  strsql = strsql & "where ((documents.category_name) = " _&
request.querystring("qrycategory") & ")"
 
  打开recordset对象
  rs.open strsql,conn,adopenstatic
 
  if rs.recordcount = 0 then
  response.write("没有发现指定类别的记录" _ &
request.querystring("qrycategory"))
  else
  response.write("<h3>给定类别含以下记录: " _ &
request.querystring("qrycategory") & "</h3>")
 
  在表格中显示查询结果
  response.write("<table cellspacing=2 cols=3 width=500>")
  response.write("<tr>")
  response.write("<td align=center valign=top width=20%")
  response.write(" bgcolor=#c8c8ff><b>名称</b></td>")
  response.write("<td align=center valign=top width=65% ")
  response.write("bgcolor=#c8c8ff><b>说明</b></td>")
  response.write("<td align=center valign=top width=15% ")
  response.write("bgcolor=#c8c8ff><b>日期</b></td>")
  response.write("</tr>")
 
  do while not rs.eof
  response.write("<tr>")
  response.write("<td>" & rs("file_name") & "</td>")
  response.write("<td>" & rs("comments") & "</td>")
  response.write("<td>" & rs("date_submitted") & "</td>")
  response.write("</tr>")
  rs.movenext
  loop
  rs.close
  response.write("</table>")
  end if
 
 end if
 set rs=nothing
 conn.close
 set conn=nothing
 %>

   虽然本例中我们只用到了一个简单的带where子句的sql select,但用类似的方法可以构造出复杂的界面和查询,只要相应地增加用来指定条件的表单元素以及根据用户选择结果构造合适sql语句的脚本即可。

五、小结
asp技术为最终用户所要求的不同数据查询界面提供了一个可伸缩的开发环境。综合地运用脚本与html可以为察看和阐释数据构造出灵活的界面,这些工具为按照用户需求过滤数据提供了一个简单但高效的方法。
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Java集合框架-JSP教程,Java技巧及代码
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!-.NET教程,评论及其它
·icl8038扫频信号发生器
·基于ASP.NET的自定义分页显示-ASP教程,ASP技巧
·DataGrid的常见问题-.NET教程,数据库应用
·ASP 调用 ORACLE存储过程并返回结果集-ASP教程,数据库相关
·RadioButtonList在Datagrid模板列中的应用-ASP教程,数据库相关
·深入剖析JSP和Servlet对中文的处理过程-JSP教程,Jsp/Servlet
·关于c#中的消息处理函数和vc中的消息处理函数区别-.NET教程,C#语言
·fireworks制作字体遮罩动画
最新文章
·如何来做好你的第一个网站_站长心得
·google广告优化技巧总结_网赚技巧
·陈宗:网络2.0是很有前景的_站长访谈
·做一个打不死的个人站长_站长心得
·photoshop蒙板打造梦幻美丽风景_photoshop教程
·拿什么拯救你 痴迷网站的站长_站长心得
·google adwords的优化技巧_google推广
·经验之谈:web建站之网站宣传_站长心得
·针对搜索引擎title的写法_站长心得
·alexa 世界网站排名研究_alexa排名
相关主题
  • ASP应用之模板采用-ASP教程,ASP应用
  • ASP应用中的应用函数-ASP教程,ASP应用
  • ASP应用范例-分页_代码部分-ASP教程,脚本编码
  • ASP应用范例-分页_执行示意图-ASP教程,ASP应用
  • ASP应用范例-分页_代码部分-ASP教程,ASP应用
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭