2009-11-02 7 views
6

を取得:誰かが助けることができる場合、私は疑問に思うADOレコードセットのフィールド名(クラシックASPに)

かいつまんで、私は、ピボットテーブルを構築しMSSQL2005を使用しています。検討されたデータは、(選択した日付に最も近い月曜日から1週間のすべてのデータ)日付範囲によって制限されている

私はストアドプロシージャを実行すると、日付を渡すとき、私は、例えば、バック正しいテーブルを取得:

時間 | 1 Jan 09 | 2 Jan 09 | 3 Jan 09 | ...

9時00分| 0 | 9 | 25 | ...

9時30分| 8 | 27 | 65 | ...

午前10時| 20 | 44 | 112 | ...

(凶悪 "表" の書式設定について謝罪)。

唯一の問題は、列見出しがSPに渡された日付(目的のビュー日)とSP内のロジック(左端の列を最も近いものにする月曜日から指定された日付まで)。

これは私が本当にの方法で必要なもの[簡単ですが、保守失敗]私は、ユーザーに結果を表示したときに、私は(現在は)従来のASPの日付チェックのロジックを複製する必要があること

を意味し、レコードセット自体から列名を取得します。

誰かが正しい方向に私を指すしてくださいことはできますか?

私はGoogleで検索しましたが、私が得るすべての結果を表スキーマの読み取りに関連しているようだ - 私のテーブルはメモリ上にその場で生成されているとして、この場合には役立ちません。あなたはおおよそ次の操作を行うことができ、ADOレコードセットを考えると

答えて

7

を提供することができる任意の助けを事前に

多くのおかげで(これは、擬似コードである):

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

は、これはあなたに名前を付けますフィールドのチェックアウトはdocumentationです。

+0

あきれるほど簡単だった - .nameのプロパティを使用します。言うまでもなく、それは完全に機能しました。ありがとうございました。 – Basic

+0

問題ありません、喜んで助けてください! – JoshBerke

+0

「.Name」が(例えば)[ここ](http://www.w3schools.com/ado/ado_ref_recordset.asp)に記載されていないことを考えると、あまりにも恥ずかしいことはありません。 – iconoclast

4

何か、これはそれを行うべきのように: -

<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 
%> 
+0

私は自分のコードにこれを使用していますが、列見出しはすべての行に表示されますか? –

+0

@BenHamiltonビットは遅いですが、HTMLEncodeにSubを編集してください。fld.Valueはfld.Nameではありません – Albofish

関連する問題