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

Conexion a mysql en visual basic varios servidores

Estas en el tema de Conexion a mysql en visual basic varios servidores en el foro de .NET en Foros del Web. Hola que tal, soy nuevo en el foro, espero contar con su ayuda. Soy estudiante de sistemas y me han dejado un proyecto en cual ...
  #1 (permalink)  
Antiguo 14/04/2012, 12:19
 
Fecha de Ingreso: abril-2012
Ubicación: zacatecas
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Conexion a mysql en visual basic varios servidores

Hola que tal, soy nuevo en el foro, espero contar con su ayuda.
Soy estudiante de sistemas y me han dejado un proyecto en cual un usuario llevará un control de activos fijos, el detalle aqui es que la aplicación debe tener la capacidad de conectarse 2 distintos servidores y cada uno con sus parametros distintos, es decir usuario y contraseña, las bases de datos tendrian las mismas estructuras pero distintos contenidos (p.ej. activos fijos 2010,2011,etc.), vaya aqui el "reto" es conectarlo a distintas fuentes de datos, para lo cual al principio de la aplicacion aparece un form dialog pidiendo el servidor, usuario y contraseña, con estos tres datos se arma una cadena de conexion que es declarada como variable pública y al momento de hacer la prueba de conexión es exitosa pero, el problema es que al llamar esa variable en otro form no llama la cadena de conexión completa, para ser mas especifico sin password, me arroja un error que me dice que el password no esta indicado, añexo el codigo de la aplicacion:

del dialog
Código:
Imports System.Windows.Forms
Imports MySql.Data
Imports MySql.Data.MySqlClient


Public Class Dialog1
    ''variable pública 
    Friend cnn As MySqlConnection

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        ''armo la cadena de conexión con las variables ingresadas en los textbox
        Try
            cnn = New MySqlConnection
            cnn.ConnectionString = "server=" & servertxt.Text & ";" & "user id=" & usertxt.Text & ";" & "password=" & passtxt.Text & ";"
            cnn.Open()
            If ConnectionState.Open Then
                MsgBox("Conexion exitosa.")
                Me.Close()
                Form1.Show()
            End If
        Catch ex As Exception
            MsgBox("Error. Verificar datos de conexión y volver a intentarlo o contactar al Administrador.")
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Form1.Close()
    End Sub

    Private Sub Dialog1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class
del form donde llamo la variable:
Código:
Imports Proceso_Adjudicaciones.Dialog1
Imports MySql.Data
Imports MySql.Data.MySqlClient


Public Class Form2
    Dim cnn As MySqlConnection

    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Try
            cnn = New MySqlConnection
            cnn.ConnectionString = Dialog1.cnn.ConnectionString
            cnn.Open()
            If ConnectionState.Open Then
                MsgBox("conexion exitosa")
            End If

        Catch ex As Exception
            MsgBox(ex.Message)


        End Try


    End Sub

    
End Class
Ahora, como hago para poder usar esa variable de conexión completa, ya que para probar hice que me mostrara un msgbox con la cadena y solo muestra el user id y el server. Espero me puedan ayudar gracias de antemano.

Última edición por marcoteatro2; 14/04/2012 a las 12:41 Razón: actualizacion
  #2 (permalink)  
Antiguo 15/04/2012, 04:55
Avatar de slaxsna  
Fecha de Ingreso: diciembre-2010
Ubicación: Tampico
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Conexion a mysql en visual basic varios servidores

Que tal, mira así a la salida mas rapida que veo .. seria

Crear un modulo con una funcion la cual podras hacer uso en donde desees.

Por ejemplo

Código:
Module Conexion
Public conectionstring As String
Dim _con As MySqlConnection

Function verificarConexionDB(ByVal _server As String, ByVal _usuario As String, ByVal _pass As String) As Boolean
        conectionstring = New String("Server=" & _server & ";" & "User ID=" & _usuario & ";" & "Password=" & _pass & ";")

     _con = New MySqlConnection(conectionstring)
        Try
            _con.Open()
            verificarConexionDB = True
        Catch ex As Exception
            verificarConexionDB = False
        End Try
    End Function
End Module
Mas o menos, solo te doy la idea ... esa seria tu modulo de conexion y en tu dialog1 donde conectas pues nadamas le mandas los valores de los textbox

Código:
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        Try
           If verificarConexionDB(TextBox1.Text, TextBox2.Text, TextBox3.Text) = True Then
             MsgBox("Conexion exitosa.")
             Me.Close()
             Form1.Show()
        Else
             MsgBox("Error. Verificar datos de conexión y volver a intentarlo o contactar al Administrador.")
            MsgBox(ex.Message)
        End If
        Catch ex As Exception
             MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error ....")
        End Try
    End Sub
y si quieres ver despues la cadena solo MsgBox(conectionstring) te debe de aparecer tanto el server, user y pass ...

Bueno es una posible solución, no digo que sea la mas optima pero ya tu sabrás como adecuarla...

Cualquier duda pues comenta, si no puedo ayudarte alguien mas lo hará.

Saludos.
  #3 (permalink)  
Antiguo 19/04/2012, 23:24
 
Fecha de Ingreso: abril-2012
Ubicación: zacatecas
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: Conexion a mysql en visual basic varios servidores

Muchisimas gracias justo lo que necesitaba!!!!

Etiquetas: visual
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 02:50.