检索 ADO 记录集字段名称(经典 ASP)

Posted

技术标签:

【中文标题】检索 ADO 记录集字段名称(经典 ASP)【英文标题】:Retrieve ADO Recordset Field names (Classic ASP) 【发布时间】:2010-12-12 08:00:02 【问题描述】:

我想知道是否有人可以提供帮助:

长话短说,我正在使用 MSSQL2005 构建数据透视表。正在检查的数据受日期范围的限制(从最近的星期一到所选日期的 1 周内的所有数据)

当我运行存储过程并传递一个日期时,我得到正确的表,例如:

Time 1 Jan 09 2 Jan 09 3 Jan 09 ...
09:00 0 9 25 ...
09:30 8 27 65 ...
10:00 20 44 112 ...

我遇到的唯一问题是列标题会根据传递给 SP 的日期(所需的查看日期)和 SP 内部的逻辑(强制左侧列是最近的星期一)而有所不同到指定的日期)。

这意味着当我向用户显示结果时,我(当前)需要复制经典 ASP 中的日期检查逻辑[简单但可维护性失败]

我真正需要的是一种从记录集中检索列名的方法。

有人可以指点我正确的方向吗?

我已经用 Google 搜索过,但我得到的所有结果似乎都与读取表架构有关 - 在这种情况下这并没有帮助,因为我的表是在内存中动态生成的。

非常感谢您提供的任何帮助

【问题讨论】:

【参考方案1】:

给定一个 ado 记录集,您可以大致执行以下操作(这是在伪代码中):

foreach (field in rs.Fields)

    alert(field.Name);

这将为您提供该字段的名称,请查看此documentation。

【讨论】:

这太简单了——使用 .Name 属性。不用说它工作得很好。谢谢。 鉴于.Name 没有记录在案(例如)here,我不会太尴尬。 @iconoclast 记录在此处w3schools.com/ado/ado_ref_field.asp您查看的是记录集而不是字段。【参考方案2】:

应该这样做:-

 <table>
   <thead>
      <tr>
         <%For Each fld in rst.Fields%>
           <th><span><%=Server.htmlEncode(fld.Name)%></span></th>
         <%Next %>
      </tr>
   </thead>
   <tbody>
 <%
   Do Until rst.EOF
      OutputRow rst.Fields
      rst.MoveNext
   Loop
 %>
   </tbody>
 </table>

 Sub OutputRow(fields)
 %>
      <tr>
         <%For Each fld in fields%>
           <td><span><%=Server.HTMLEncode(fld.Name)%></span></td>
         <%Next %>
      </tr>
 <%
 End Sub
 %>

【讨论】:

我将它用于我的代码,但列标题显示在每一行? @BenHamilton 有点晚了,但是将 Sub 编辑为 HTMLEncode fld.Value 而不是 fld.Name

以上是关于检索 ADO 记录集字段名称(经典 ASP)的主要内容,如果未能解决你的问题,请参考以下文章

在内存中,独立,断开连接的 ADO 记录集

将 DAO 记录集转换为断开连接的 ADO 记录集 dbDecimal 问题

如何从 ADO 记录集字段将图片加载到 MS-Access Image 控件中?

ADO 简介

ADO 简介

MS Access/ADO AddNew 方法不附加记录