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:
Ora in asp.net: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
Creo la connessione
Creo un datareader per clienti
ecc,ecc,codice:while clienti_reader.Read
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....

Rispondi quotando