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搜索了但是我得到的所有结果似乎都与读取表格模式有关 - 在这种情况下这没有用,因为我的表格是在内存中动态生成的.
非常感谢您提供的任何帮助
给定一个ado记录集,您可以大致执行以下操作(这是伪造的代码):
foreach (field in rs.Fields)
{
alert(field.Name);
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供该字段的名称,请查看此文档.
这样的事情应该这样做: -
<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)