Newsgroup: it.comp.www.asp
Titolo: [ASP.NET] chiusura oggetti e connessioni

Salve NG,
sto costruendo un assembly contenente le logiche di accesso ai dati per
un'applicazione 
ASP.NET
.
Vorrei sapere se e corretto scrivere il codice seguente.
(estratto dall'assembly)
Public Function GetNews() As SqlDataReader
    Dim MyConnection As New
SqlConnection(ConfigurationSettings.AppSettings("ConnStringDB"))
    Dim MyCommand As New SqlCommand("EderaGetNews",MyConnection)
    MyCommand.CommandType = CommandType.StoredProcedure
    MyConnection.Open()
    Return MyCommand.ExecuteReader(CommandBehavior.CloseConnection)
End Function
Quello che vorrei sapere esattamente e':
Se e' intelligente restituire un SqlDataReader... che mi e' utile per fare
il databind velocemente richiamando la funzione in esempio.
Se tutti le connessioni e gli oggetti vengono chiusi (da codice intendo) con
l'esempio riportato sopra.
Se utilizzando le Stored Procedure mi evito il controllo sui parametri
passati (SQL Injection).
Grazie a tutti come sempre.
Daniele

 passati (SQL Injection).
beh i campi prima di passarli alla funzione e' meglio sempre controllarli...
se provengono da campi esterni... :)
-- 
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Gli iperlink sovvertono la gerarchia.


Moderatore di it.comp.www.asp - Microsoft .NET MVP
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle!
http://www.extensible.it/
 XML and beyond


Grazie delle risposte Lino...
Se non sono troppo indiscreto... posso sapere qual'e' l'esatto approccio che
usi tu????
Grazie 1000
Saluti
Daniele

 che a fronte di un datareader venisse popolato.
Anche un bel datatable va benissimo! Io faccio cosě se i dati son pochi. :)
Apertura, inserimento dei dati nel datatable e chiusura nel modo piů veloce
possibile...
Ciao
--
AZ [Microsoft .NET MVP]

 approccio che usi tu????
l'unioca differenza e' che io tutte le funzioni che ritornano datareader o
dataset... le metto in un assembly... e li richiamo come semplici metodi...
in questo modo la logica e le chiamate al db sono esterne alla pagina...
Ciao
-- 
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Il risultato č che i mercati stanno diventando piů intelligenti, piů
informati, piů organizzati. Partecipare a un mercato in rete cambia
profondamente le persone.

 veloce possibile...
dipende se ti serve una strongly typed collection o no :)
anche io uso DataTable quando i dati sono pochi e/o non ho bisogno di
qualcosa di già tipizzato.
ma il sistema migliore sarebbe ovviamente il primo.



Credo di fare anche io piu' o meno come dici tu...
Ho un file DataAccess.vb che contiene un NameSpace
con una classe che ha tutte quelle funzioni di accesso ai dati.
E' come dici tu ???
Saluti Daniele

 se usi il metodo Close dell'oggetto Command si.
Nel codice che ho postato nel primo thread... in che punto devo chiudere
l'oggetto Command????
(ti riposto parte del codice)
Public Function GetNews() As SqlDataReader
    Dim MyConnection As New SqlConnection(...)
    Dim MyCommand As New SqlCommand("EderaGetNews",MyConnection)
    MyCommand.CommandType = CommandType.StoredProcedure
    MyConnection.Open()
    Return MyCommand.ExecuteReader(CommandBehavior.CloseConnection)
End Function
Grazie 1000
Daniele Imberti


Ciao


 E' come dici tu ???
penso di si... pero' in molti casi e' utili anche spostare la logia... in
pratica nella pagina hai solo i server controls che vengono istanziati e/o
popolati in base al servizio :)
-- 
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Gli iperlink sovvertono la gerarchia.

 l'oggetto Command????
mamma se ho bisogno di riposto :P oggetto DataReader, non Command.
devi chiudere l'oggetto DataReader, dopo averlo usato. un DataReader chiuso
(visto che è analogo come concetto ad un Recordset) non è collegato alla
fonte dati.






Ciao e grazie,
AZ [Microsoft .NET MVP]