Visual Basic - cerrar la conexion en un select

Life is soft - evento anual de software empresarial
 
Vista:

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?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cerrar la conexion en un select

Publicado por csdk (127 intervenciones) el 22/09/2006 23:02:39
Public Function conex()
ADOCONN.ConnectionString = " Provider=SQLOLEDB.1;Persist Security Info=False;User ID=SA;Initial Catalog=sisva2;Data Source=HABERS"
ADOCONN.Open
End Function
Public Function desconectar()
ADOCONN.Close
End Function

conex

RST_EMPLEADO.Source = "SELECT DISTINCT TB_EMPLEADO.NOMBRE_COMPLETO,TB_EMPLEADO.CURP,TB_EMPLEADO.RFC, TB_EMPLEADO.SEXO, TB_EMPLEADO.PUESTO, TB_EMPLEADO.CVL_NIVEL, TB_EMPLEADO.CVL_SECCION,TB_NIVEL.DESCRIPCION, TB_SECCIONES.DESCRIPCION AS Expr1 FROM TB_EMPLEADO INNER JOIN TB_NIVEL ON TB_EMPLEADO.CVL_NIVEL = TB_NIVEL.CVL_NIVEL CROSS JOIN TB_EMPLEADO TB_EMPLEADO_1 INNER JOIN TB_SECCIONES ON TB_EMPLEADO.CVL_SECCION = TB_SECCIONES.CVL_SECCION WHERE TB_EMPLEADO.CVL_EMPLEADO='" & Txt_CvlEmpleado.Text & "';"
RST_EMPLEADO.ActiveConnection = ADOCONN
RST_EMPLEADO.Open

If Not RST_EMPLEADO.EOF Then
Txt_Nombre.Text = RST_EMPLEADO.Fields("nombre_completo")
Txt_Curp.Text = RST_EMPLEADO.Fields("curp")
Txt_Rfc.Text = RST_EMPLEADO.Fields("RFC")
Cbo_Seccion.Text = RST_EMPLEADO.Fields("Expr1")
Cbo_Nivel.Text = RST_EMPLEADO.Fields("DESCRIPCION")
Cbo_Puesto.Text = RST_EMPLEADO.Fields("puesto")
Cbo_Sexo.Text = RST_EMPLEADO.Fields("sexo")
desconectar
Else

MsgBox "El Registro no Existe"
Txt_CvlEmpleado.Text = ""
Cmd_Aceptar.Caption = "Eliminar"
Screen.MousePointer = vbNormal
desconectar

Exit Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar