elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Cómo mantener conexion abierta a MySQL?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo mantener conexion abierta a MySQL?  (Leído 6,907 veces)
luison

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Cómo mantener conexion abierta a MySQL?
« en: 14 Febrero 2011, 18:09 pm »

Que tal salu2 y feliz dia!

Veran, tengo una conexion a mysql que es la siguiente:

Código
  1. Public Sub ConexionMySQL()
  2.        Try
  3.  
  4.            If CellDBCon.State = ConnectionState.Closed Then
  5.  
  6.                CellDBCon.ConnectionString = "Server=" & Trim(pStrServer) & "; port=" & Trim(pStrPort) & "; Uid=" & Trim(pStrUser) & "; Pwd=" & Trim(pStrPW) & "; database=" & Trim(pStrDB) & ";"
  7.                CellDBCon.Open()
  8.  
  9.            End If
  10.        Catch ex As Exception
  11.  
  12.        End Try
  13.  
  14.        MsgBox("Error al establecer la conmexion con el Servidor de Base de Datos" & vbCrLf & Err.Description)
  15.    End Sub
  16.  

La cual utiizo de la siguiente manera, como ejemplo:

Código
  1. Dim item As ListViewItem
  2.        Dim cmd As New MySqlCommand
  3.        Dim reader As MySqlDataReader
  4.  
  5.        CerrarConexion()
  6.        ConexionMySQL()
  7.        Try
  8.            cmd.Connection = CellDBCon
  9.            cmd.CommandText = "SELECT * from horarios"
  10.            reader = cmd.ExecuteReader
  11.            lstLista.Items.Clear()
  12.            While reader.Read
  13.  
  14.                item = lstLista.Items.Add(reader(0).ToString)
  15.                item.SubItems.Add(reader(1).ToString)
  16.  
  17.  
  18.            End While
  19.        Catch ex As MySqlException
  20.            MsgBox("Error: " & ex.Message & vbNewLine, MsgBoxStyle.Exclamation)
  21.        End Try
  22.        CerrarConexion()
  23.  


Cada vez que lleno un combo, listview etx, tengo que abrir y cerrar la conexion.
De otra manera e intentado abrir la conexion en el load de los formularios para mantenerla siempre abierta, pero en ocasiones da un error de que ya hay una instancia de la conexion abierta.

Alguien que me pueda echar un cable de cómo puedo mantener la conexion siempre abierta sin tener que estar abriendo y cerrandola?

La idea es abrirla en los loads de los forms, o en unaa funcion main y cerrarla unicamente al cerrar la aplicacion.( cosa que hacia en el vb6  :) )

Gracias y estarémos por aqui investigando alternativas.



En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Cómo mantener conexion abierta a MySQL?
« Respuesta #1 en: 14 Febrero 2011, 20:39 pm »

Pues deja como lo hacías pero solo comprueba que si se cierra la abres de nuevo y ya.

Aunque es mejor cerrarla siempre porque evita cargas innecesarias contra el servidor de base de datos.

Además se te cierra probablemente porque el Garbage Collector lo está haciendo.

Intenta poner eso en donde haces la conexión:
Código
  1. GC.KeepAlive(CellDBCon);
  2.  

Un saludo.


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Cómo mantener conexion abierta a MySQL?
« Respuesta #2 en: 15 Febrero 2011, 04:36 am »

Hola, yo nunca tuve problema en esto de las conexiones, siempre la mantuve abierta, pero nunca la habras en los formularios, lo podes abrir una sola vez en un modulo con el Sub_Main(), tenes que agregar un modulo simple y ahi crear el Sub_Main() y ahi conectarte, en las propiedad es del proyecto debes cambiar que el objeto de inicio sea el Sub_Main() y no el formulario.

otra cosa es que en esto de los temas de bases de datos, es mejor crear clases con metodos que traigan los resultados, asi en el formulario no haces las consultas, esto seria como programar en 3 capas digamos, pero bueno eso depende de cada uno.

saludos.
En línea

luison

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Re: Cómo mantener conexion abierta a MySQL?
« Respuesta #3 en: 15 Febrero 2011, 19:40 pm »

Ok gracias a los dos. Voy a probar la forma que me sugieres seba.
Enseguida posteo los resultados.
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Cómo mantener conexion abierta a MySQL?
« Respuesta #4 en: 15 Febrero 2011, 21:06 pm »

Si, como dice seba está bien, pero recuerda validad que si la conexión se cierra volverla a abrir, solo para evitar problemas.

Esto lo puedes hacer en una propiedad static (shared en vb.net) en el Sub_main como dice seba.

Un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mantener una conexión activa php/ajax
PHP
Kizar 7 7,812 Último mensaje 16 Junio 2009, 01:03 am
por дٳŦ٭
[Solucionado] Ejecutar comando y mantener consola abierta
GNU/Linux
aaronduran2 3 7,392 Último mensaje 24 Junio 2010, 15:39 pm
por aaronduran2
Conexion irc en wifi abierta
Redes
_Cthulhu_ 2 3,053 Último mensaje 10 Septiembre 2010, 21:19 pm
por _Cthulhu_
MANTENER SESION ABIERTA EN PHP.
PHP
podenko 7 6,883 Último mensaje 18 Febrero 2014, 14:13 pm
por ~ Yoya ~
Correr un script sin mantener la terminal con ssh abierta?
GNU/Linux
‭lipman 4 3,505 Último mensaje 14 Febrero 2016, 19:24 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines