2012-08-14 65 views
2

我使用基于数据库数据的谷歌图表框架...记录集,检查的最后一个记录

我需要生成等相关的输出:

([ 
    ['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

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 %> 
]); 

;-)

+0

感谢您的帮助。 – Khrys 2012-08-15 12:47:01

+0

欢迎您:) – vegetable 2012-08-16 09:28:49

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 
    %> 
]); 
+0

谢谢你的帮助! – Khrys 2012-08-15 12:48:07