2013-03-08 122 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