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

时间:2009-11-02 15:42:11

标签: asp-classic ado pivot recordset

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

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

当我运行Stored Proc并将其传递给日期时,我会得到正确的表格,例如:

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

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

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

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

(对于残暴的“表格”格式表示歉意。)

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:8)

给定一个ado记录集,你可以做大致如下(这是伪造的代码):

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

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

答案 1 :(得分: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
 %>