Ti mando un esempio di due cicli con 2 datareader.
In pratica il primo ciclo fa la scansione delle provincie e, all'interno del ciclo, un ciclo annidato che fa la scansione dei comuni per la provincia appena scritta.
Nel mio codice sostituisci PrintLn con Response.write (xxx & "
")
e commenta This = Me
codice:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
This = Me
ScansionaProvince()
End Sub
Private Sub ScansionaProvince()
Dim StringaSql$ = "SELECT ID_PROVINCIA, NOME FROM PROVINCE ORDER BY NOME"
Dim DataReader As OleDbDataReader
Dim Connessione As New OleDbConnection(Application("connessione_access_prova").ToString)
Connessione.Open()
Dim Comando As New OleDbCommand(StringaSql, Connessione)
DataReader = Comando.ExecuteReader(CommandBehavior.CloseConnection)
Do While (DataReader.Read())
PrintLn("<u>Provincia: " & DataReader.GetString(1) & "</u>")
ScansionaComuniPerPrivincia(DataReader.GetDecimal(0))
Loop
DataReader.Close()
Connessione.Close()
End Sub
Private Sub ScansionaComuniPerPrivincia(ByVal id_provincia As Decimal)
Dim StringaSql$ = "SELECT NOME_COMUNE FROM COMUNI WHERE ID_PROVINCIA = " & id_provincia & " ORDER BY NOME_COMUNE"
Dim DataReader As OleDbDataReader
Dim Connessione As New OleDbConnection(Application("connessione_access_prova").ToString)
Connessione.Open()
Dim Comando As New OleDbCommand(StringaSql, Connessione)
DataReader = Comando.ExecuteReader(CommandBehavior.CloseConnection)
Do While (DataReader.Read())
PrintLn(DataReader.GetString(0))
Loop
PrintLn("")
DataReader.Close()
Connessione.Close()
End Sub