elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:40  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  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 1,255 veces)
luison

Desconectado Desconectado

Mensajes: 91


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

Que tal salu2 y feliz dia!

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

Código
Public Sub ConexionMySQL()
       Try
 
           If CellDBCon.State = ConnectionState.Closed Then
 
               CellDBCon.ConnectionString = "Server=" & Trim(pStrServer) & "; port=" & Trim(pStrPort) & "; Uid=" & Trim(pStrUser) & "; Pwd=" & Trim(pStrPW) & "; database=" & Trim(pStrDB) & ";"
               CellDBCon.Open()
 
           End If
       Catch ex As Exception
 
       End Try
 
       MsgBox("Error al establecer la conmexion con el Servidor de Base de Datos" & vbCrLf & Err.Description)
   End Sub
 

La cual utiizo de la siguiente manera, como ejemplo:

Código
 Dim item As ListViewItem
       Dim cmd As New MySqlCommand
       Dim reader As MySqlDataReader
 
       CerrarConexion()
       ConexionMySQL()
       Try
           cmd.Connection = CellDBCon
           cmd.CommandText = "SELECT * from horarios"
           reader = cmd.ExecuteReader
           lstLista.Items.Clear()
           While reader.Read
 
               item = lstLista.Items.Add(reader(0).ToString)
               item.SubItems.Add(reader(1).ToString)
 
 
           End While
       Catch ex As MySqlException
           MsgBox("Error: " & ex.Message & vbNewLine, MsgBoxStyle.Exclamation)
       End Try
       CerrarConexion()
 


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]
Moderador
***
Desconectado Desconectado

Mensajes: 1.647


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 »

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
GC.KeepAlive(CellDBCon);
 

Un saludo.


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.214



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

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

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
luison

Desconectado Desconectado

Mensajes: 91


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

Ok gracias a los dos. Voy a probar la forma que me sugieres seba.
Enseguida posteo los resultados.
En línea
[D4N93R]
Moderador
***
Desconectado Desconectado

Mensajes: 1.647


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 »

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 conexion a internet?????
Redes
emuchinga 5 624 Último mensaje 14 Mayo 2005, 01:51
por Murderer_Fresh
Mantener una conexión activa php/ajax
PHP
Kizar 7 3,058 Último mensaje 16 Junio 2009, 01:03
por дٳŦ٭
¿Mantener una ventana de conversación de msn abierta ralentiza la conexión?
Chats; IRC y Messengers
Last_ 4 2,071 Último mensaje 8 Septiembre 2009, 20:45
por 043h68
[Solucionado] Ejecutar comando y mantener consola abierta
GNU/Linux
aaronduran2 3 2,333 Último mensaje 24 Junio 2010, 15:39
por aaronduran2
Conexion irc en wifi abierta
Redes
_Cthulhu_ 2 900 Último mensaje 10 Septiembre 2010, 21:19
por _Cthulhu_
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines