Is it possible to re-use a DataTable in .net? 
Here's an example from code-behind: 

```
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    ' the stored proc
    Dim SqlQuery As String = "some_silly_stored_proc"
    Dim conn As String = My.Settings.csSomeProject

    Using dbcon = New SqlConnection()

        Using cmd As New SqlCommand(SqlQuery, dbcon)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("@SomeSillyParamID", SqlDbType.Int)
            cmd.Parameters("@SomeSillyParamID").Value = pn.Silly_now

            Using myCommand As New SqlDataAdapter()
                Dim sillyDS As New DataSet()

                dbcon.ConnectionString = conn

                dbcon.Open()
                myCommand.SelectCommand = cmd
                myCommand.Fill(sillyDS)
                dbcon.Close()

                r.someResultRows = sillyDS.Tables(0)
                r.someResultRowsAgain = sillyDS.Tables(1)
                ' etc...

            End Using
        End Using
    End Using

```

When I attempt to re-access the DataTable in code-behind, 
the original result-set doesn't get returned with all the 
right data if an event fires outside of the Page\_Load event. 

If I test with this code in code behind,
the some of the columns with integers and decimals come back 
as 0 instead of their original values. For example, 
the value for Row 1, Column 2 comes back as 0 instead of the integer 82. 

```
    Dim var1, var2, var3, var4, var5, var6 As String
    Dim _r As DataRow

    For Each _r In r.sillyDS.Tables(0)
        var1 = _r(0).ToString()
        var2 = _r(1).ToString()
        var3 = _r(2).ToString()
        var4 = _r(3).ToString()
        var5 = _r(4).ToString()
        var6 = _r(5).ToString()
    Next

```

Yet if a similar "For Each" loop is on the .aspx page, 
all of the values come back correctly for each cell, 
not just some.