开发者

get the value from 2-d arraylist in session

I have an 2-d arraylist with 2 fixed columns and dynamic rows. The arraylist will be assigned to the session variable at the 开发者_开发技巧end of the code below. My question is how can loop thorugh the arraylist from the session to get its value?

If .SQLDS.Tables(.sSQLDSTbl).Rows.Count > 0 Then
    Dim NoOfAdjType(1, .SQLDS.Tables(.sSQLDSTbl).Rows.Count - 1)

    For iRow As Integer = 0 To .SQLDS.Tables(.sSQLDSTbl).Rows.Count - 1
        If Not .SQLDS.Tables(.sSQLDSTbl).Rows(iRow).Item("i_commAmt") Is System.DBNull.Value Then
            NoOfAdjType(0, iRow) = .SQLDS.Tables(.sSQLDSTbl).Rows(iRow).Item("productType")
            NoOfAdjType(1, iRow) = Format(.SQLDS.Tables(.sSQLDSTbl).Rows(iRow).Item("i_commAmt"), "#,##0.00")
        End If
    Next

        Session("iNoOfAdjAmtType") = NoOfAdjType
End If

I have tried this but it's giving me error 'Too many arguments to 'Public Overridable Default Property Item(index As Integer) As Object'

Dim NoOfAdjType As ArrayList = CType(Session("iNoOfAdjAmtType"), ArrayList)
For i As Integer = 0 To NoOfAdjType.Count
    Dim a As String = NoOfAdjType(0, i)
    Dim b As String = NoOfAdjType(1, i)
Next


The type you are dealing with is Object(,). So when reading from the session you can cast it back to this type.

Here's an article on MSDN which illustrates how to read values from session:

Dim NoOfAdjType as Object(,) = CType(Session("iNoOfAdjAmtType"), Object(,))
' do something with the list

And if you wanted to perform the check safely ensuring that there is an item with the given id in the session:

If Session.Item("iNoOfAdjAmtType") IsNot Nothing Then
    ' We have a value in the session with the given id
    Dim NoOfAdjType as Object(,) = CType(Session("iNoOfAdjAmtType"), Object(,))
End If


I am not certain what is the data-type of array, but this how you manipulate the multi-dimension arrays in VB.NET assuming data-type as object

' declaring variable of multi-dim array
Dim NoOfAdjType As Object(,)
' create array object of needed dimension (you may use redim keyword)
NoOfAdjType = new Object(1, .SQLDS.Tables(.sSQLDSTbl).Rows.Count - 1) {}

...

' push it in session
 Session("iNoOfAdjAmtType") = NoOfAdjType

...

' get back from session
NoOfAdjType = DirectCast(Session("iNoOfAdjAmtType"), Object(,))
...
For i As Integer = 0 To NoOfAdjType.GetLength(0)
   For j As Integer = 0 To NoOfAdjType.GetLength(1)
      Dim a As Object = NoOfAdjType(i, j);
      ...
   Next
Next

See this MSDN article for array in VB.NET: http://msdn.microsoft.com/en-us/library/wak0wfyt.aspx


Try this,

Dim a As String = NoOfAdjType(0)(0,0)

Or use

For Each arr As Object(,) In NoOfAdjType

Next
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜