2013-03-08 124 views
0

我遇到問題。陣列列表錯誤第二個陣列替換第一個陣列

Dim Maxis As String 
     'Dim MaxisExtra As String 
     Dim b As New ArrayList 
     Dim WS As New WebService1.Service1 
     Dim cnt As String 
     Dim MRWS As New MobileReload_WS.MobileReload_WS 
     cnt = WS.StockCountTelco(1, Session("Maxis")) 
     If CInt(cnt) >= CInt(DropDownList1.SelectedItem.Text) Then 
      Dim sLock As String 
      sLock = MRWS.LockAStock(1, 1, "Online", Session("Maxis"), DropDownList1.SelectedItem.Text) 
      Session("sLock") = sLock 

      If sLock = "" Then 
       PopupMsgBox("Unable to allocate Stock") 
      Else 
       Maxis = "Maxis" & ";" & Session("Maxis") & ";" & DropDownList1.SelectedItem.Text & ";" & Session("Cost") 
       'If MaxisExtra = "" Then 
       ' b.Add(Maxis) 
       ' Elseif 
       ' MaxisExtra = MaxisExtra + Maxis 
       ' b.Add(MaxisExtra) 
       'End If     
      End If 
     Else 
      PopupMsgBox("Not enough stock") 
     End If 
     b.Add(Maxis) 
     Session("Transaction") = b 
    End Sub 

我第一次將字符串輸入到數組列表中時沒問題。但是當用戶再次按下按鈕add時,它會替換第一個字符串。任何人都可以幫助我如何根據我的編碼將字符串保存到第二個插槽?

回答

0

如果你在談論的bArrayList,那麼你創建一個新的,每次和Session("Transaction")

存儲新ArrayList也許你的意思是這樣,而不是...

Dim b as ArrayList = Session("Transaction") 
If b Is Nothing Then 
    b = new ArrayList 
End If 
... 
Session("Transaction") = b 

雖然很難說清楚,因爲你的代碼很雜亂,不清楚

0

你把數組列表放在一個會話變量中,但你永遠不會讀回它。您每次創建一個新的數組列表,因此它將始終爲空,並替換上一個。

從會話變量獲取數組列表,如果有一個:

Dim b As ArrayList = Session("Transaction") 
If b Is Nothing Then b = New ArrayList