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

Bas*_*sic 9 pivot ado recordset asp-classic

我想知道是否有人可以帮忙:

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

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

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

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

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

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

(对于残暴的"表格"格式表示道歉).

我唯一的问题是列标题将根据传入SP的日期(所需的视图日期)和SP内的逻辑(强制左侧列为最接近的星期一)而变化指定).

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

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

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

我用Google搜索了但是我得到的所有结果似乎都与读取表格模式有关 - 在这种情况下这没有用,因为我的表格是在内存中动态生成的.

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

Jos*_*rke 9

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

foreach (field in rs.Fields)
{
    alert(field.Name);
}
Run Code Online (Sandbox Code Playgroud)

这将为您提供该字段的名称,请查看此文档.


Ant*_*nes 5

这样的事情应该这样做: -

 <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
 %>
Run Code Online (Sandbox Code Playgroud)