Il 2006 per me è iniziato con una richiesta di migrazione di un sito da asp ad asp.net...

Il primo problema che ho incontrato è questo:

Ho due tabelle: "Clienti" e "Ordini" Con una relazione 1 a molti.

Normalmente in asp mi muovevo in questo modo:

Creavo una connessione, un recordset "Clienti" che visualizzavo con il classico "Do while not clienti.eof"
All'interno del loop creavo il recordset "Ordini" per visualizzare il numero di ordini fatti per ogni cliente.

Quindi in asp:
codice:
' Dopo aver creato la connessione e il recordset clienti
Do while not clienti.eof
Response.write NOMECLIENTE & "br"
set ordini = Server.createobject("ADODB.Recordset")
sql = "Select * from ordini WHERE id_cliente =" & clienti.fields("id_cliente")
ordini.open sql,connessione,1
Response.write ordini.recordcount
ordini.close
set ordini=nothing
clienti.movenext
loop
Ora in asp.net:

Creo la connessione
Creo un datareader per clienti

codice:
while clienti_reader.Read
ecc,ecc,
Vorrei creare qui un altro datareader per gli ordini ...ma non posso usare la stessa connessione usata per il datareader clienti se prima non la chiudo.
Ho già risolto creando un'altra connessione ma la mia domanda è:
E' corretto agire in questo modo? Aprendo cioè due connessioni diverse al database? perchè non posso usare la stessa connessione (aperta" per due datareader?

Ci sono altri modi per ottenere lo stesso risultato che ottenevo con asp?

Ps: il recordcount di asp come lo sostituisco in .net?

Mi sa che sarà lunga....