Chiusura connessione sql server...

venerdì 03 novembre 2006 - 14.35

contiello Profilo | Senior Member

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?

Brainkiller Profilo | Guru

>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.
>come è possibile?

Ciao,
ci puoi arrivare da solo. Io ci sono arrivato poi sono andato a leggere la documentazione, e ho ricevuto conferma. Ti riporto quanto indicato nella documentazione .NET al metodo Fill():

...The connection object associated with the SELECT statement must be valid, but it does not need to be open. If the connection is closed before Fill is called, it is opened to retrieve data, then closed. If the connection is open before Fill is called, it remains open....

L'oggetto Connection dev'essere valido non necessariamente aperto. Quando chiami il Fill viene aperta la connessione, ricevuti i dati e chiusa la connessione. Ecco perchè
Ciao



David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

freeteo Profilo | Guru

ciao,
ankio ho gia risposto qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=11516

teniamone buono uno dei 2 altrimenti facciamo confusione...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5