当前位置: 首页 > news >正文

沧州市网站建设价格线上培训课程

沧州市网站建设价格,线上培训课程,ssh框架做的家政服务网站,网站设计一般多长时间经常在论坛上碰到一些新学ASP开发的朋友咨询如何通过查询按类别输出数据,而通常用的方法是先查询出各类别,然后通过循环一个一个的再查询出该类别的数据输出。这个办法是最简单的,但是也是比较耗费资源和效率比较低的。下面我介绍…

经常在论坛上碰到一些新学ASP开发的朋友咨询如何通过查询按类别输出数据,而通常用的方法是先查询出各类别,然后通过循环一个一个的再查询出该类别的数据输出。这个办法是最简单的,但是也是比较耗费资源和效率比较低的。下面我介绍两个方法,都是只查询一次就可以输出的,希望对大家有所帮助。

本例子所使用的数据库结构如下:

 

(一) 通过一个变量控制输出
代码如下:
  1. <%@Language=VBScript  CodePage=936%>  
  2.  
  3. <%  
  4.  
  5. Option Explicit  
  6.  
  7. dim conn,rs,currentClassname  
  8.  
  9. Set Conn=Server.CreateObject("ADODB.Connection")  
  10.  
  11. conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq= test.mdb;" 
  12.  
  13. set rs=conn.execute("select id,classname,title from test order by classname,title")  
  14.  
  15. currentClassname="" 
  16.  
  17. do while not rs.eof  
  18.  
  19.        if currentClassname<>rs("classname"then 
  20.  
  21.               if currentClassname="" then   
  22.  
  23.                      response.write  "<table>" & vbcrlf  
  24.  
  25.               else 
  26.  
  27.                      response.write "</table><br /><table>" & vbcrlf  
  28.  
  29.               end if  
  30.  
  31.               currentClassname=rs("classname")  
  32.  
  33.               response.write "<tr><td align='center' style='font-weight:bold;'>"&currentClassname&"</td></tr>"& vbcrlf  
  34.  
  35.        end if  
  36.  
  37.        response.write "<tr><td><a href='test.asp?id="&rs("id")&"'>"&rs("title")&"</a></td></tr>"& vbcrlf  
  38.  
  39.        rs.movenext  
  40.  
  41. loop  
  42.  
  43. response.write "</table>"& vbcrlf  
  44.  
  45. %>  
  46.  
  47. rs.close 
  48.  
  49. set rs=nothing  
  50.  
  51. conn.close 
  52.  
  53. set conn=nothing  
  54.  
该方法要点有两个:
1、 查询语句。
我们看看这个查询语句:select id,classname,title from test order by classname,title
红色字体部分就是要注意的,只有排序方式是先按类别排序的,我们才能得出我们需要的效果。
2、 循环控制变量。
从代码中,我们可以看到currentClassname这个变量记录了当前的类别名称,当该名称发生该表的时候,也就意味着上一类别已经输出完成,需要更改我们的显示了。
(二) 通过ADO的Shape命令查询结果。
我们先看看Shape命令在ADO中的说明:
“数据构形”定义了成形 Recordset 的列、由列代表的条目之间的关系以及数据充填到 Recordset 的方式。
成形的 Recordset 可以由如下类型的列组成:

 

Shape 命令可以包含子句,指定针对基本数据提供者并将返回 Recordset 对象的查询命令。查询的语法取决于对基本数据提供者的要求。虽然 ADO 并不要求使用任何指定的查询语言,但通常是使用结构化查询语言 (SQL)。

您可以使用SQL JOIN 子句关联两个表,但是,分级 Recordset 可以更有效地表达信息。由 JOIN 创建的 Recordset 的每行会多余地重复一个表中的信息。分级 Recordset 的多个子 Recordset 对象中,每个对象仅有一个父 Recordset
Shape 命令可以仅由 Recordset 对象发出。
Shape 命令可以嵌套,即父命令或子命令本身可以是另一个Shape 命令。
有关定位分级 Recordset 的详细信息,请参阅访问分级 Recordset 中的行。
有关语法正确的Shape 命令的详细信息,请参阅形状语法格式。
合计函数、CALC 函数和 NEW 关键字
数据构形支持如下函数。chapter-alias 是指定给包含了将被操作列的子集名称。
chapter-alias(子集-别名)可以是完整的,由指向包含 column-name 的子集的每个子集列名称组成,全部用句号分隔。例如,如果父子集 chap1 包含拥有数量列 amt 的子子集,则完整名即是 chap1.chap2.amt。

然后我们可以写出如下代码:

  1. <%@Language=VBScript  CodePage=936%>  
  2.  
  3. <%  
  4.  
  5. Option Explicit  
  6.  
  7. dim conn,rs,rschapClassname  
  8.  
  9. Set Conn=Server.CreateObject("ADODB.Connection")  
  10.  
  11. conn.Open "Provider=MSDataShape;Data Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)};Dbq=D:/projects/homepage/test/sample1/test.mdb;" 
  12.  
  13. set rs=conn.execute"SHAPE  {select DISTINCT classname from test order by classname }" & vbcrlf & _  
  14.  
  15.        "APPEND ({select id,title,classname from test} " & vbcrlf & _  
  16.  
  17.        "RELATE classname TO classname) AS chapClassname")  
  18.  
  19. do while not rs.eof  
  20.  
  21.        response.write "<table>" & vbcrlf & _  
  22.  
  23.               "<tr><td align='center' style='font-weight:bold;'>"&rs("classname")&"</td></tr>"& vbcrlf  
  24.  
  25.        set rschapClassname=rs("chapClassname").value  
  26.  
  27.        do while not rschapClassname.eof  
  28.  
  29.               response.write "<tr><td><a href='test.asp?id="&rschapClassname("id")&"'>"&rschapClassname("title")&"</a></td></tr>"& vbcrlf  
  30.  
  31.               rschapClassname.movenext  
  32.  
  33.        loop  
  34.  
  35.        response.write "</table>" & vbcrlf  
  36.  
  37.        rs.movenext  
  38.  
  39. loop  
  40.  
  41. rschapClassname.close 
  42.  
  43. set rschapClassname=nothing  
  44.  
  45. rs.close 
  46.  
  47. set rs=nothing  
  48.  
  49. conn.close 
  50.  
  51. set conn=nothing 

在以上代码中我们要注意的有点:

1、 数据库联接
Shape命令构型一定要在数据库连接的字符串中加入Provider=MSDataShape;Data Provider=MSDASQL;,不然是不能用过shape进行查询的。
2、 查询结构
我们看看以下查询语句:
SHAPE {select DISTINCT classname from test order by classname }
APPEND ({select id,title,classname from test} RELATE classname TO classname) AS chapClassname
首先是查询出主要类别:{select DISTINCT classname from test order by classname }
然后通过APPEND将该类型的所有记录作为一个记录集追加到主查询,作为主查询的一个字段,然后通过“set rschapClassname=rs("chapClassname").value”访问该记录集进行输出。
看过的朋友一定会问:“这两个方法哪个方法最好?”
呵呵,不好意思,因为我没做过详细的测试,所以不知道那个最好。大家可以根据各自情况选择其中的一种办法,或许可能还有更好的办法是我没想到的。
http://www.lbrq.cn/news/2480455.html

相关文章:

  • 网站推广活动方案新型网络营销模式
  • 怎么制作自己的免费网站凡科建站代理登录
  • 镇江网站建设一般多少钱百度的seo排名怎么刷
  • 临沂做百度网站软件公司微信指数查询
  • 怎么做响应式网站百度seo指南
  • 网站主页排版纯手工seo公司
  • wordpress手机端底部菜单主题郑州seo学校
  • js网站记住密码怎么做性能优化工具
  • 网站app下载平台怎么做的线上广告接单平台
  • 网站左侧悬浮导航上海网站外包
  • 网站建设有哪些软件如何在互联网上做推广
  • world做网站企业网站推广渠道
  • 海北公司网站建设建站平台哪个比较权威
  • 网站界面设计尺寸规范自媒体平台有哪些
  • 关于 政府门户网站 建设管理深圳市网络营销推广服务公司
  • 邓州网站推广百度公司的企业文化
  • 高端网站制作网站建设实时积分榜
  • 天马行空网站建设百度官网下载安装到桌面上
  • 网站建设公司湖南多用户建站平台
  • 网站建设开发合同模板下载湖南网站优化
  • 杨彪网站建设免费网站建设哪个好
  • 网站的开发环境设计seo排名系统
  • 企业网站建设套餐价格百度信息流推广和搜索推广
  • 简述网站建设方案类型网销怎么销售的
  • 可以做立体图形的网站做seo需要哪些知识
  • 织梦 网站模板全网营销系统怎么样
  • 贵阳专业做网站公司疫情防控最新通告
  • 耿马网站建设360关键词排名推广
  • 宝鸡网站建设公司都有哪些百度搜索排行榜风云榜
  • amaze ui做网站泉州网站建设优化
  • 【科研绘图系列】R语言绘制误差连线散点图
  • pip, github 突然连不上?报错和解决方法如下
  • python面向对象编程详解
  • react+threejs实现自适应分屏查看/3D场景对比功能/双场景对比查看器
  • 数据结构3-单双链表的泛型实现及ArrayList与LinkedList的区别
  • 关于在VS2022配置启动项目的问题