2017-09-23 82 views
-1

我有一個簡單的VBScript,它從數據庫獲取數據並遍歷它們並生成一個表。在此迭代期間,我想捕獲一些數據(特定列的值)並將它們保存在變量中供以後使用。但是每當我的代碼達到if聲明它不會循環。VBScript不會超過if語句

Dim lats 
    Dim longs 
    Set lats = CreateObject("System.Collections.ArrayList") 
    Set longs = CreateObject("System.Collections.ArrayList") 
    %> 
    <table> 
    <tr><th>Office</th><th>Address</th><th>Comune</th><th>Province</th><th>Lat</th><th>Long</th><th>2G</th><th>3G</th><th>4G</th></tr> 

    <%do until rs.EOF 
     response.write("<tr>") 
     for each x in rs.Fields 
      response.write("<td>" & response.write(x.value) &"</td>") 
      'IF the below statement equals true, the loop doesn't perform anymore 
      If x.name = "SITE_LAT_N" Then 
      lats.Add x.value 
      ElseIf x.name = "SITE_LON_E" Then 
      longs(indx) = x.value 
      End If 
      next 
     rs.MoveNext 
     response.write("</tr>") 
     loop 
     rs.close 
     conn.close 
     %> 
    </table> 
+1

我猜你在代碼中有'On Error Resume Next'。刪除它並查看顯示的錯誤。另外,不要在Response.Write裏面調用Response.Write。 – Tomalak

+0

不,我沒有,在我的代碼的下一個任何地方的錯誤恢復。另外我修復了Response.Write,但是循環不能繼續。 –

回答

6
longs(indx) = x.value 

看起來腥。證據:

>> set al = CreateObject("System.Collections.ArrayList") 
>> al.Add "works" 
>> WScript.echo al(0) 
>> al(1) = "doesn't work" 
>> 
works 
Error Number:  -2146233086 
Error Description: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein. 
Parametername: index 

另外:indx從哪裏來?你不能使用

longs.add x.value 
+0

公平評估。 – Lankymart