我想知道是否有人可以提供帮助:
长话短说,我正在使用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中的日期检查逻辑[容易但可维护性失败]
我真正需要的是一种从记录集本身检索列名的方法。
有人可以指出我正确的方向吗?
我用谷歌搜索但是我得到的所有结果似乎都与阅读表格模式有关 - 在这种情况下这没有用,因为我的表格是在内存中动态生成的。
非常感谢您提供的任何帮助
答案 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
%>