Hola, me tome la libertad de hacer un ejemplo porque la vdd me parecio algo muy interesante y queria saber si se podia hacer como me lo habia imaginado, la verdad es que si se puede y no necesitas clases raras. Basicamente, si tu llenas un DataSet con su Stored Procedure que devuelve 3 Select, en tu DataSet tendras 3 Tablas, una por cada Select, lo unico que deberas hacer es accederlas a ellas por sus indices, a continuacion un ejemplo en codigo.
Código VB:
Ver originalDim cnx As New SqlConnection(ConnectionStrings.Item("MiCnx").ToString) 'Obtenemos la conexion del web.config, lo puedes harcodear si deseas
Dim adp As New SqlDataAdapter
Dim cmd As New SqlCommand
Dim ds As New DataSet
With cmd
.CommandText = "sp_SP_3Selects" 'Este Sp tiene 3 Selects adentro
.CommandType = CommandType.StoredProcedure
.Connection = cnx
End With
adp = New SqlDataAdapter(cmd)
adp.Fill(ds, "sp3selects") 'Se le pone un nombre a la tabla 1, las demas tablas se nombran en automatico con estas y su indice
cnx.Close()
With Me.gv_Uno
.DataSource = ds.Tables.Item(0) 'Apuntamos a la tabla cero, la primera
.DataBind()
End With
With Me.gv_Dos
.DataSource = ds.Tables.Item(1) 'Apuntamos a la tabla 1, la segunda
.DataBind()
End With
With Me.gv_Tres
.DataSource = ds.Tables.Item(2) 'Apuntamos a las tabla 2, la tercera.
.DataBind()
End With
gv_Uno, gv_Dos y gv_Tres, son 3 GridViews distintos ya creados en el HTML de la pagina.
Espero esto te haya servido, saludos.