cerrar la conexion en un select
Publicado por martin (1 intervención) el 14/09/2006 21:07:36
utilizo esta conexion para mysql:
Public Function Consulta(ByVal sql As String, ByRef dr As OdbcDataReader) As Boolean
Dim cnx As OdbcConnection
Dim cmd As OdbcCommand
Consulta = False
cnx = New OdbcConnection("DSN=conexion")
cmd = cnx.CreateCommand()
'cmd = New OdbcCommand(sql, cnx)
Try
If cnx.State = ConnectionState.Closed Then
cnx.Open()
End If
dr = cmd.ExecuteReader
Consulta = dr.HasRows 'obtiene un valor que indica si Sistem.Data.Odbc.OdbcDataReader contiene una o más filas
Catch ex As Exception
MsgBox(ex.Message)
If cnx.State = ConnectionState.Open Then
cnx.Close()
End If
End Try
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sql As String
dim dr as odbcdatareader
sql = "Select * from usuario"
if consulta(sql,dr) = true then
dr.read()
me.textbox1.text=dr(0)
me.textbox2.text=dr(1)
me.textbox3.text=dr(2)
end if
End Sub
el problema que tengo es que al hacer el select, me deja la conexion abierta y no la puedo cerrar, y hay un momento en que son muchas las conexiones que se quedan aviertas que se satura el servidor y me marca errores alguien sabes como puedo cerrar la conexion?
Public Function Consulta(ByVal sql As String, ByRef dr As OdbcDataReader) As Boolean
Dim cnx As OdbcConnection
Dim cmd As OdbcCommand
Consulta = False
cnx = New OdbcConnection("DSN=conexion")
cmd = cnx.CreateCommand()
'cmd = New OdbcCommand(sql, cnx)
Try
If cnx.State = ConnectionState.Closed Then
cnx.Open()
End If
dr = cmd.ExecuteReader
Consulta = dr.HasRows 'obtiene un valor que indica si Sistem.Data.Odbc.OdbcDataReader contiene una o más filas
Catch ex As Exception
MsgBox(ex.Message)
If cnx.State = ConnectionState.Open Then
cnx.Close()
End If
End Try
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sql As String
dim dr as odbcdatareader
sql = "Select * from usuario"
if consulta(sql,dr) = true then
dr.read()
me.textbox1.text=dr(0)
me.textbox2.text=dr(1)
me.textbox3.text=dr(2)
end if
End Sub
el problema que tengo es que al hacer el select, me deja la conexion abierta y no la puedo cerrar, y hay un momento en que son muchas las conexiones que se quedan aviertas que se satura el servidor y me marca errores alguien sabes como puedo cerrar la conexion?
Valora esta pregunta


0