Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Chiusura connessione sql server...
venerdì 03 novembre 2006 - 14.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
contiello
Profilo
| Senior Member
260
messaggi | Data Invio:
ven 3 nov 2006 - 14:26
ciao ragazzi mi succede una cosa strana in una piccola routine anche dopo aver chiuso la connessione al db continuo a prelevare dati attraverso una select
il codice è questo.
Dim strsql As String
Dim conn As New SqlClient.SqlConnection
Dim cmdx As SqlClient.SqlCommand
Dim pwddb As String
Dim dadx As New SqlClient.SqlDataAdapter
Dim dts As New DataSet
conn.ConnectionString = "strconn"
conn.Open()
conn.Close() 'da notare qui la connessione viene chiusa come conferma la successiva
' msgbox
MsgBox(conn.State.ToString)
conn.Dispose()
cmdx = New SqlClient.SqlCommand("Select * FROM tusers WHERE username='enzo'", conn)
dadx = New SqlClient.SqlDataAdapter(cmdx)
dadx.Fill(dts)
If dts.Tables(0).Rows.Count <> 0 Then
MsgBox("Ci sono")
End If
conn.Close()
cmdx.Dispose()
dadx.Dispose()
dts.Dispose()
conn.Dispose()
come è possibile?
velimie
Profilo
| Newbie
10
messaggi | Data Invio:
ven 3 nov 2006 - 15:29
il command apre la connessione passata per i fatti suoi?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 4 nov 2006 - 12:21
ciao,
il dataadapter per definizione, si apre e si chiude la connection da solo
Mediamente questo comportamento è ottimo inquanto ti evita lo smazzo di aprire chiudere e poi magari lasciare a perta la connessione bloccando altri etc...insomma concettualmente usando il dataadapter tu carichi/salvi dei dati e del resto non ti interessa.
Io lo uso spesso e devo dire che è veloce come approccio e soprattutto non ti da problemi di connessioni aperte (che tenere la connessione aperta = consumo di risorse spesso inutile).
Nel caso tu invece voglia controllare lo stato della connessione , devi usare 1 DataReader, il quale per definizione non fa niente alla connessione (quindi se non l'hai aperta va in errore appunto) e poi la devi chiudere tu.
Quest'ultimo approccio è sicuramente piu' veloce ma a mio avviso nella media delle applicazioni che farai a te non serve, vai meglio a farti 1 bel fill della datatable/dataset e avere i dati in memoria subito...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !