电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> 数据库
ASP应用中数据库记录的选取与过滤-ASP教程,ASP应用
作者:网友供稿 点击:39
  西部数码-全国虚拟主机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.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·数据库开发个人总结(ADO.NET小结)-.NET教程,数据库应用
·怎么由DataSet将数据导入Excel?-.NET教程,数据库应用
·动态创建SQL Server数据库、表、存储过程-ASP教程,数据库相关
·Win32环境下动态链接库(DLL)编程原理-.NET教程,数据库应用
·封装的ADO.NET对数据库操作经典类-.NET教程,数据库应用
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·DataGrid使用心得(附大量代码)-ASP教程,数据库相关
·用代码创建DataGrid的多链接及checkbox事件响应-.NET教程,数据库应用
·ADO.NET 的最佳实践技巧-.NET教程,数据库应用
·转载: 用纯ASP代码实现图片上传并存入数据库中

最新文章
·根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
·DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
·使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
·关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·.net下访问Access数据库需要注意的问题-.NET教程,Asp.Net开发
·ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
·ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
·NET(C#)连接各类数据库-集锦-.NET教程,C#语言
·ASP.NET2.0连接SQL Server数据库详解-.NET教程,Asp.Net开发


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号