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

问题描述:

我不知道是否有人能帮助:检索ADO记录集的字段名(经典ASP)

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

当我运行Stored Proc并通过日期时,我得到正确的表格,例如:

时间 | 2009年1月1日 | 2009年1月2日号 | 2009年3月3日 | ...

09:00 | 0 | 9 | 25 | ...

09:30 | 8 | 27 | 65 | ...

10:00 | 20 | 44 | 112 | ...

(道歉为残暴的“表”格式)。

我唯一的问题是,列标题将根据传入SP的日期(期望的查看日期)和SP内的逻辑(强制左列为最接近的日期星期一至指定日期)。

这意味着,当我显示结果给用户,我(现在)需要复制在传统的ASP日期检查逻辑[容易,但可维护性失败]

我真正需要的是一种方式从记录集本身检索列名称。

有人可以请指出我在正确的方向吗?

我已经谷歌搜索,但我得到的所有结果似乎与阅读表格架构 - 这在这种情况下没有帮助,因为我的表在内存中正在生成。

提前许多感谢任何帮助,您可以提供

给定一个ADO记录集,你可以做大致有以下(这是伪代码):

foreach (field in rs.Fields) 
{ 
    alert(field.Name); 
} 

这会给你的名字的领域检查出这documentation

+0

这是令人尴尬的简单 - 使用,请将.Name属性。毋庸置疑,它完美运作。谢谢。 – Basic 2009-11-02 15:58:55

+0

没问题,乐于帮忙! – JoshBerke 2009-11-02 16:03:11

+0

考虑到'.Name'没有记录(例如)[这里](http://www.w3schools.com/ado/ado_ref_recordset.asp),我不会太尴尬。 – iconoclast 2013-06-21 16:29:23

像这样的东西应该做到这一点: -

<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 
%> 
+0

我正在使用这个代码,但列标题显示在每一行? – 2014-07-11 15:52:18

+0

@BenHamilton比特已晚,但编辑Sub到HTMLEncode fld.Value不是fld.Name – Albofish 2014-10-22 12:38:35