Antes de nada deberéis descargaros los archivos del final de la entrada, para que todo esto funcione. Son drivers de MySQL para VB6 y VB.NET. También tenéis un enlace a una página web que contiene todas las cadenas de conexión que existen.
Visual Basic 6
'Lo primero que deberemos hacer es crear las siguientes variables: Public conn As New ADODB.Connection 'Variable que conectará con la base de datos Public rs As New ADODB.Recordset 'Variable donde se guardarán todas las consultas 'Lo siguiente que debemos hacer es poner la cadena de conexión a la variable 'conn, para así conectarnos con la base de datos MySQL conn.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=servidor;Database=nombre_bbdd; User=user;Password=pwd;Option=3;" conn.Open 'Abrimos la conexión 'La variable ADODB.Recordset se encargará de ejecutar la consulta 'Primero comprobamos que el recordset no esté abierto con otra consulta, 'si está abierto, lo cerramos If (rs.State <> adStateClosed) Then rs.Close End If rs.ActiveConnection = conn 'Asignamos la conexión de la BBDD rs.Open ("select * from table") 'Generamos la consulta 'Para acceder a la información generado deberemos hacer lo siguiente: 'Comprobamos que la consulta a generado algún resultado con EndOfFile if (Not rs.EOF){ MsgBox (rs(0).value) 'Accedemos y mostramos la información del primer campo }Visual Basic .NET
'Primero deberemos importar las siguientes librerías Imports System.Data Imports MySql.Data.MySqlClient 'Después declaramos las siguiente variables Public connmy As MySqlConnection Public adaptermy As MySqlDataAdapter Public datasetmy As DataSet 'Conectamos a la BBDD y abrimos la conexión connmy = New MySqlConnection("Server=servidor;uid='user';pwd='pwd'; database='nombre_bbdd'") connmy.Open() 'Seleccionamos la tabla que queramos adaptermy = New MySqlDataAdapter("select * from tabla", connmy) datasetmy = New DataSet() 'Cargamos la tabla en el dataadapter y le damos el nombre que queramos adaptermy.Fill(datasetmy, "Nombre_Tabla") 'Para mostrar la información, el ejemplo la añadirá a un listbox 'Hacemos un for each, que recorrerá todas las filas de la consulta generada For Each row In datasetmy.Tables("Nombre_Tabla").Rows ListBox1.Items.Add(row("Nombre_Campo")) Next
Descarga | Driver VB6
Descarga | Driver VB.NET
Enlace | Connection String
21 comentarios:
y para conectar a una base de datos externa?, es decir en un servidor de internet?, ya he probado poniendo la ip en la direccion de la base de datos pero me dice que no puede conectarse
gracias
Para connectarte a una bbdd externa, siempre y cuando sea MySQL, debes hacer lo siguiente en el codigo siguiente:
conn.ConnectionString = "Driver={MySQL ODBC 3.51
Driver};Server=servidor;Database=nombre_bbdd;
User=user;Password=pwd;Option=3;"
Dónde pone servidor, pon la ip del servidor donde este alojada la bbdd.
nombre_bbdd, user y pwd: Deberás poner el nombre, usuario y contraseña de la bbdd.
Con esto debería funcionar, si no te funciona, vuelve a preguntar.
Saludos y gracias por visitar el blog
Y por que no me funciona la instrucción?
conn.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=prueba;User=root;Password=;Option=3;"
mmm
Yo tengo instalado el driver de mysql odbc 5.1, ahora funciona.
Hay alguna forma de que funcione sin instalar el driver?
Sin driver no funciona, ya que lo necesita para poder conectar con la base de datos
El driver es necesario, ya que es el proveedor "punte" para la comunicación entre la aplicación y la base de datos....
Me funciono de maravilla!! Muchisimas gracias! :)
Un saludo
Gracias a ti por visitar el blog!
Chavos buenos dias!!! estoy en busqueda urgente de DOS vacantes!! una es para Desarrollador Visual Basic y MySQL y la otra para Desarrollador PHP, ambas son para Guadalajara!! si estan interesados o conocen a alguien favor de enviar CV a fabiola.gonzalez@cnehumanresources.mx cualquier duda estoy a sus ordenes!!
Buenas estoy tratando de conectarme a una externa pero no he podido de ninguna manera, agradecería mucho una ayuda.
connmy = New MySqlConnection("Driver={MySQL ODBC 3.51 Driver};Server=mysql.nixiweb.com;Database='u110869634_univ';User='u110869634_univ';Password='xxxxx';Option=3;")
Try
connmy.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Descargue el driver y aun asi nada
http://dev.mysql.com/downloads/mirror.php?id=406107#mirrors
Que tal bueno para aquellos que han tenido problemas con este tipo de conexion yo logre hacerlo, aclaro lo llegue hacer en un servidor web montado por mi, no lo he intentado con un servidor web por otras personas.
1. monte mi servidor web con xampp de ahi abrir puertos para que pueda salir a internet
2. crear un usuario diferente a root ya que este no puede hacer la conexion
3. abrir el puerto 3306 que es para conexiones remotas esto lo hice en mi router que me dio telmex
4. instalar el driver que aqui publican
con esto ya no deberan tener problemas para realizar la conexion remota y con respecto al codigo yo use otro, aqui les pongo el codigo que yo use en visual basic 2010:
Imports MySql.Data.MySqlClient
Public Class Form1
Public connmy As MySqlConnection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Conectamos a la BBDD y abrimos la conexión
connmy = New MySqlConnection("Server='" & txt_server.Text & "';uid='" & txt_usuario.Text & "';pwd='" & txt_password.Text & "';database='" & txt_database.Text & "'")
Try
connmy.Open()
MsgBox("Conexion abierta")
connmy.Close()
Catch ex As Exception
MsgBox("Error en la conexion " & ex.Message, vbOKOnly & vbCritical)
connmy.Dispose()
End Try
End Sub
End Class
en el form use algunas labels, cuatro textbox y un boton ya que solo hice una prueba para la conexion remota si necesidad de leer alguna tabla bueno espero y les sirva de ayuda
Gracias por tu aporte.
Un saludo
muy buen aporte, y con el asistente de visual basic 2010 express como seria
atte:
mtz_jseb@hotmail.com
ZORLAK en Server= txt_server.text, va la ip del otro equipo, lo que no he podido saber es la dirección del servidor de mysql del sitio donde esta alojada la base de datos, como debe ir...
tengo un problema me quiero conectar a una base de datos montada en mi mi pc con wamp, instale el controlador ODBC 5.2.4 de mysql y lo configure en win8 le puse localhost, la base test y el user pasll y funciono de maravilla desde vb, pero trate de conectarme cambiando la base de datos por otra nueve recien creada y no conecta, solo con la base test, no puedo hacer que conecte con otra base de datos, trate cambiando la configuracion en el driver ODBC 5.2.4 en origenes de datos del panel de control de win8 pero sigue igual, solo habre la base test. que podra ser, queda grabado en registro de windows la primera base que habilite en el driver odbc o que pasara?
Bueno ya lo solucione tratando y tratando se me ocurrio entrar a phpMyAdmin y desde entre a usuarios y vi que se habia agregado 2 Lioneas nuevas en el registro de USER, HOST PASS Y PRIVILEGIOS GLOBALES y resulta que antes salia root localhost no, all privileges en todos, solo cambiaba localhost por ::1 y 127.0.0.1 en los nuevos registros aparece user=ANY, host=localhost y %, Pass= -- Privilegios=USAGE entonces cambie donde privilegio global donde esta localhost y puse ALL PRIVILEGES y ya funciono, puedo cambiar de base de datos, ya no estoy amarrado a una sola.
No se que paso, porque se auto crearon estas 2 nuevas categorias de usuarios ANY.
hermano quiero que se guarde lo que tengo en mi texbox en una mysql server 5.5.8 como le hago
Buen ejemplo, funciona perfecto.....Gracias!
Hola el regional,
Pones el textbox dentro de un form, lo pasas por POST, y lo recoges en la página dónde guardas los datos.
Saludos y gracias por la visita!
Tengo un problema no puedo realizar la conexión con SQL Server desde excel el codigo que estoy utilizando el siguiente pero no logra la conexión me menciona que no ecuentra el servidor, gracias
por su ayuda
Sub PruebaConexion()
Dim oCon As ADODB.Connection, sConStr As String
Dim oComando As ADODB.Command, SQLstr As String
sConStr = "Driver={SQL Server}; Server=\\MXCRZAPP\COMPAC; Database=CtCRZNueva2013;uid=******; pwd=*******;"
Set oCon = New ADODB.Connection
oCon.Open sConStr
Set oComando = New ADODB.Command
oComando.ActiveConnection = oCon
oComando.CommandText = SQLstr
oComando.Execute
oCon.Close
End Sub
Hola. He compilado el código sin problemas, y se ejecuta hasta:
adaptermy.Fill(datasetmy, "nomtab")
Pero ahí me dice que hay un eeror de sintaxis en la línea:
adaptermy = New MySqlDataAdapter("SELECT Titulo from actual", connmy)
La base de datos la abro sin problemas desde PhpAdmin.
No entiendo porqué, podrías ayudarme.
Tengo el código igual que el que tienes tú, que es este:
'Primero deberemos importar las siguientes librerías
Imports MySql.Data.MySqlClient
Imports System.Data.SqlClient
Module crearMySql
'Después declaramos las siguiente variables
Public connmy As MySqlConnection
Public adaptermy As MySqlDataAdapter
Public datasetmy As DataSet
Public Sub BD_MySql()
connmy = New MySqlConnection("Server=localhost;uid='XXXXX';pwd='XXXX'; database='b_itc'")
Try
connmy.Open()
MsgBox("Conexion abierta")
'connmy.Close()
Catch ex As Exception
MsgBox("Error en la conexion " & ex.Message, vbOKOnly & vbCritical)
connmy.Dispose()
End Try
'Seleccionamos la tabla que queramos
adaptermy = New MySqlDataAdapter("SELECT Titulo from actual", connmy)
datasetmy = New DataSet()
'Cargamos la tabla en el dataadapter y le damos el nombre que queramos
adaptermy.Fill(datasetmy, "nomtab")
'Para mostrar la información, el ejemplo la añadirá a un listbox
'Hacemos un for each, que recorrerá todas las filas de la consulta generada
For Each row In datasetmy.Tables("nomtab").Rows
frmSql.ListBox1.Items.Add(row("Titulo"))
Next
End Sub
End Module
Le estoy dando vueltas y no logro saber que pasa.
Muchas gracias por anticipado.
Publicar un comentario