RecordSet,检查最后一条记录

时间:2012-08-14 15:04:19

标签: asp-classic recordset

我正在使用基于数据库中数据的Google图表框架...

我需要生成如下输出:

([
  ['Year',  'ON',   'OFF',  'X1',   'X2'],
  ['Jan/12',    2,  5,      10,         9],
  ['Fev/12',    5,  10,     54,         10],
  ['Mar/12',    10, 36,     15,         10]
]);

请注意,最后一行没有逗号。我的代码如下:

([
  ['Year',  'ON',   'OF',   'X1',   'X1'],
    <%
        WHILE NOT DB.EOF
        ON= DB("ON")
        OFF= DB("OFF")
        X1= DB("X1")
        X2= DB("X2")
    %>
        ['<% Response.Write Month %>/<% Response.Write Year %>',    <% Response.Write ON %>, <% Response.Write OFF %>, <% Response.Write X1 %>, <% Response.Write X2 %>,
    <%
        DB.MOVENEXT
        WEND
    %>
]);

我的问题:如何检查循环何时到达最后一行,而不是放逗号,什么都不放?

谢谢!

2 个答案:

答案 0 :(得分:3)

AnthonyWJones的答案对我来说似乎没问题,但是你也可以问内循环如果在接下来你不在EOF然后你写“,”

([ 
    ['Year',  'ON',   'OFF',   'X1',   'X2']
    <% Do While Not DB.EOF %>
        [
         '<%= Month %>/<%= Year %>', 
         <%= DB("ON") %>, 
         <%= DB("OFF") %>, 
         <%= DB("X1") %>, 
         <%= DB("X2") %>
        ]
        <%
        DB.MoveNext
        %>
        <% If Not DB.EOF Then %>
            ,
        <% End If %>
    <% Loop %>
]); 

- )

答案 1 :(得分:1)

你得到RecordCount = -1,因为只有前向记录集不知道还有多少记录。

这里采取的方法是在循环的顶部插入一些内容。

([ 
  ['Year',  'ON',   'OFF',   'X1',   'X2']
    <% 
        Do While Not DB.EOF
            Response.Write ", " & vbCrLf

            Response.Write "  ['" & Month & "/" & Year & "', " & DB("ON") & ", " & DB("OFF") & ", " & DB("X1") & ", " & DB("X2") & "]"  

            DB.MoveNext 
        Loop 
    %> 
]);