Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con Visual Basic .NET 2008 y MySQL

Estas en el tema de Ayuda con Visual Basic .NET 2008 y MySQL en el foro de .NET en Foros del Web. Buenas a todos, quiero pedir su ayuda para un programa que estoy desarrollando en VB.Net 2008 que tiene una conexión con MySQL, el codigo del ...
  #1 (permalink)  
Antiguo 07/11/2009, 14:41
 
Fecha de Ingreso: junio-2008
Mensajes: 95
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con Visual Basic .NET 2008 y MySQL

Buenas a todos, quiero pedir su ayuda para un programa que estoy desarrollando en VB.Net 2008 que tiene una conexión con MySQL, el codigo del form para conectarse es el siguiente:

Imports MySql.Data
Imports MySql.Data.MySqlClient
Public Class frmDatosOperador
Dim acceso As Boolean
Dim intentos As Integer = 0
Dim cnn As MySqlConnection = Nothing
Dim comando As New MySqlCommand()
Private Sub cmdEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEntrar.Click
'Dim permiso As Integer
Dim cadena_conexion As String = "server=localhost; " & "userid=" & txtUsuario.Text & "; " & "password=" & txtClave.Text & "; "& "database=estrellas;"
Try
cnn = New MySqlConnection(cadena_conexion)
cnn.Open()
acceso = True
Catch err As MySql.Data.MySqlClient.MySqlException
acceso = False
intentos = intentos + 1
End Try
If acceso = True Then
comando.CommandText = "select permiso from permisos where user='" & txtUsuario.Text & "';"
comando.Connection = cnn
'permiso = comando.ExecuteScalar()
'MessageBox.Show(permiso.ToString())
Me.DialogResult = Windows.Forms.DialogResult.OK
Else
If intentos < 3 Then
MsgBox("Usuario o Password Incorrecto", MsgBoxStyle.Exclamation)
Else
MsgBox("Numero de intentos excedido Acceso denegado", MsgBoxStyle.Critical)
End
End If
End If
End Sub

Private Sub txtClave_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtClave.KeyPress
If (e.KeyChar = Convert.ToChar(Keys.Return) Or e.KeyChar = Convert.ToChar(Keys.Enter)) Then
cmdEntrar_Click(Nothing, Nothing)
End If
End Sub
End Class

todo esto es para hacer la conexión por que este es un formulario de acceso que se conecta a la base de datos de MySQL para comprobar que el usuario existe y puede usar la base de datos, como puedo hacer para declarar un objeto de conexión que sea global es decir que todos los formularios utilicen ese objeto (como el que esta marcado en negritas) intente declararlo dentro de la MDI y que los forms hijos lo utilizaran pero no pude, alguien tiene alguna sigerencia??.
  #2 (permalink)  
Antiguo 07/11/2009, 20:43
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Ayuda con Visual Basic .NET 2008 y MySQL

Agrega un elemento de configuración a tu proyecto (App.Config) y ahí declara la conexión
o puedes crear una clase "clsConexion" con variables públicas.
Código:
Public Class clsConexion

Public Shared Usuario As String
Public Shared Clave As String

Public Shared Function CadenaConexion() As MySqlConnection 
Dim cn As New MySqlConnection("server=localhost; " & "userid=" & Usuario & "; " & "password=" & Clave & "; "& "database=estrellas;" 
return cn
End Function

End Class
En el formulario que tengas los textbox's txtUsuario y txtClave tendrás que asignarle los valores a las variables públicas
Código:
clsConexion.Usuario = txtUsuario.Text
clsconexion.Clave = txtClave.Text
Tener una cadena de conexión de forma global creo que si es buena idea, pero el objeto connection en si me parece que no, porque tendrás que implementar otros métodos para ver en que momento se abrió o cerró la conexión, la liberación propia del objeto, etc.
Bueno con el código que te puse creo que podrás empezar. Espero te ayude

PD: Creo que sería mejor que las variables públicas las manejes como propiedades.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 08/11/2009, 16:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayuda con Visual Basic .NET 2008 y MySQL

Como te sugieren:
- Crea una clase que maneje toda la relación con la base de datos.
- Crea métodos, funciones o propiedades públicas que manejen por separado:
. Conexiones
. Lecturas de tablas.
. Inserciones.
. Actualizaciones.
- Crea una variable tipo Friend de esa clase en el Module, de modo que se a accesible desde cualquier parte.
- No pongas código SQL en los formularios. Crea métodos que devuelvan DataTables o DataSets o valores en la clase que maneja la base. De esa forma, si tienes que cambiar de DBMS solo deberás cambiar el código de una sola clase.
- Los parámetros de configuración de la conexión es mejor ponerlos en el App.Config, para poder independizarlos de la aplicación misma (ncluso allí puedes poner codificado como clave el DBMS que usa).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:32.