9

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

长话短说,我正在使用 MSSQL2005 构建数据透视表。检查的数据受日期范围的限制(从最近的星期一到所选日期的 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 中的日期检查逻辑 [简单但可维护性失败]

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

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

我已经用谷歌搜索了,但我得到的所有结果似乎都与读取表模式有关——在这种情况下这无济于事,因为我的表是在内存中动态生成的。

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

4

2 回答 2

9

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

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

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

于 2009-11-02T15:49:12.200 回答
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
 %>
于 2009-11-02T16:00:08.550 回答