Datareader connessione aperta

giovedì 30 giugno 2005 - 11.29

temerario Profilo | Junior Member

Volevo avere da voi un chiarimento.
Io ho una serie di eventi TextChanged e non faccio altro che verificare che la parte di testo che è stata inserita (codice) esista nella tabella del DB prelevandomi così sia il codice che la descrizione.
Quindi eseguo per molti campi la stessa procedura che è la seguente:
Try
cmd = New MySqlCommand(sql, conn)
conn.Open()
Dim dr As MySqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
dr.Read()
.....
dr.Close()
Else
...
End If
Catch exc As MySqlException
Finally
conn.Close()
End Try
sperro però quando eseguo cmd.ExecuteReader() non mi trova nulla perchè dice...connessione già aperta.
Ma la sintassi che uso io è corretta?

Brainkiller Profilo | Guru

Ciao temerario,
mi sembra corretto il tuo codice, tranne che di solito io apro la connessione:
conn.Open()
e poi eseguo tutto il resto, instanzio il Command, e così via.
Prova a fare così, anceh se cmq. poi il codice è corretto.
Conn dove viene instanziato a proposito ?

ciao
david

David De Giacomi
Microsoft MVP
http://www.dotnethell.it - Have a Problem ? Get a solution ;-)

temerario Profilo | Junior Member

Dim conn As MySqlConnection = CType(getStrConnection("conn"), MySqlConnection)
Dim cmd As MySqlCommand
Try
cmd = New MySqlCommand(sql, conn)
conn.Open()
Dim dr As MySqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
dr.Read()
.....
dr.Close()
Else
...
End If
Catch exc As MySqlException
Finally
conn.Close()
End Try

Qualcuno mi faceva notare di chiudere la connessione anche quando dr.hasrow è false.
Quindi anche in else fare dr.close.
Ma mi puoi spiegare bene la differenza tra dr.close e conn.close in quanto mettendo conn.close nel finally dovrebbe sempre essere chiusa.
Ciao

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