Utilizar el conector MySQL Driver CS en vb.net Leido 23.605 veces

 
  Broco
Pregunta
Resuelta.
Bueno, quiero crear una base de datos para usarla desde mi VB.net,
tengo instalado tengo instalado MySQLDriverCS y MySQL Connector-Net tengo los dos por que según e leído tengo que darle a DATOS>Nuevo origen de datos, y que me saldrá algo de mysql, osea una vez en nuevo origen de datos selección "Base de datos" y tal.. pero no veo nada de MYSQL una instale por que me lo paso Jesus y el otro pos googleando me dijeron ese xD, pero ya digo que no me sale nada de Mysql..

 

 





  Jesús
Respuesta correcta
Más adelante cuando tengas más experiencia te recomiendo crearte tu propio conector utilizando las apis de libmysql, por el momento empieza con el MySQLDriverCS.

Aquí te dejo un ejemplo básico que he hecho para que empieces:



Public Class Form1

'Esta es la conexión
Public MySQLCon As MySQLConnection

'Función para conectar
Public Function ConectarMySQL() As Boolean

Try
'Establezco la conexión para conectar por pipes pon "." en el server
MySQLCon = New MySQLConnection(New MySQLConnectionString("servidor", "basedatos", "root", "", 3306).AsString)
MySQLCon.Open()
Return True
Catch ex As MySQLException
'Si ha dado un error al conectar se muestra el error
MsgBox("Señor Broco, no se pudo conectar a MySQL Server:" & vbCrLf & ex.Message.ToString)
End Try

End Function

'Función para consultar
Public Function ConsultaSQL(ByVal ElSQL$) As System.Data.IDataReader

'Creo el comando
Dim SQL As MySQLCommand = New MySQLCommand
'Asigno los valores
SQL.Connection = MySQLCon : SQL.CommandText = ElSQL : SQL.CommandType = CommandType.Text
'Ejecuto el comando y lo asigno al return
ConsultaSQL = SQL.ExecuteReader()
'Elimino el comando
SQL.Dispose()

End Function

'Load del form para probar las funciones
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Conecto y asigno el resultado (Sólo se hace una vez evidentemente)
Dim HaConectado As Boolean = ConectarMySQL()

'Si ha conectado pruebo la consulta simple
If HaConectado Then

'Creo un nuevo lector de datos
Dim DatosSQL As System.Data.IDataReader

'Ejecuto la consulta y asigno el resultado
DatosSQL = ConsultaSQL("SELECT usuario FROM usuarios ;")

'Hgo while mientras hayan datos que leer Read devuelve True
While DatosSQL.Read()

'Asigno el campo
Dim Usuario$ = DatosSQL("usuario")

'Msgboxeo el cambo :)
MsgBox(Usuario)

'Paso al siguiente registro
End While

End If

End Sub

End Class


 

 


  Jesús
Respuesta correcta
Más adelante cuando tengas más experiencia te recomiendo crearte tu propio conector utilizando las apis de libmysql, por el momento empieza con el MySQLDriverCS.

Aquí te dejo un ejemplo básico que he hecho para que empieces:



Public Class Form1

'Esta es la conexión
Public MySQLCon As MySQLConnection

'Función para conectar
Public Function ConectarMySQL() As Boolean

Try
'Establezco la conexión para conectar por pipes pon "." en el server
MySQLCon = New MySQLConnection(New MySQLConnectionString("servidor", "basedatos", "root", "", 3306).AsString)
MySQLCon.Open()
Return True
Catch ex As MySQLException
'Si ha dado un error al conectar se muestra el error
MsgBox("Señor Broco, no se pudo conectar a MySQL Server:" & vbCrLf & ex.Message.ToString)
End Try

End Function

'Función para consultar
Public Function ConsultaSQL(ByVal ElSQL$) As System.Data.IDataReader

'Creo el comando
Dim SQL As MySQLCommand = New MySQLCommand
'Asigno los valores
SQL.Connection = MySQLCon : SQL.CommandText = ElSQL : SQL.CommandType = CommandType.Text
'Ejecuto el comando y lo asigno al return
ConsultaSQL = SQL.ExecuteReader()
'Elimino el comando
SQL.Dispose()

End Function

'Load del form para probar las funciones
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Conecto y asigno el resultado (Sólo se hace una vez evidentemente)
Dim HaConectado As Boolean = ConectarMySQL()

'Si ha conectado pruebo la consulta simple
If HaConectado Then

'Creo un nuevo lector de datos
Dim DatosSQL As System.Data.IDataReader

'Ejecuto la consulta y asigno el resultado
DatosSQL = ConsultaSQL("SELECT usuario FROM usuarios ;")

'Hgo while mientras hayan datos que leer Read devuelve True
While DatosSQL.Read()

'Asigno el campo
Dim Usuario$ = DatosSQL("usuario")

'Msgboxeo el cambo :)
MsgBox(Usuario)

'Paso al siguiente registro
End While

End If

End Sub

End Class


 

 


  Broco
¿tiene que estar en Internet no?
MySQLConnection(New MySQLConnectionString("sql201.byethost22.com", "Nombre de la base de datos", "root", "¿pass?", 3306)

Yo lo estoy poniendo como en PHP xD

 

 


  Jesús
Si lo tienes en tu equipo por socket pon "localhost" y si tienes activadas las pipes pon "."
 

 





  Broco
Bueno estoy googleando pero no veo nada.. guiame un pelin con eso de los socket o las pipes y sigo buscando...
 

 


  Jesús
Tienes dos formas de acceder a MySQL, por sockets (un puerto) o por pipes(copiando una zona de memoria).

Si al servidor que conectas es un servidor local, puedes usar pipes, para ello debes configurar tu my.ini añadiendo la linea después de [mysqld]:



[mysqld]
enable-named-pipe


Una vez modificado reinicia el servidor de mysql.
Conectaremos con:



MySQLCon = New MySQLConnection(New MySQLConnectionString(".", "basedatos", "root", "", 3306).AsString)


Para conectar por socket (un puerto) en este caso el puerto 3306 que es el standard de MySQL, pondremos localhost si es la máquina local.



MySQLCon = New MySQLConnection(New MySQLConnectionString("localhost", "basedatos", "root", "", 3306).AsString)


Si puedes usar pipes mejor, es muchisimo más rápido que abrir un socket y no necesitas marearte con el firewall ya que realmente el libmysql te da los datos en una zona de memoria compartida y haces un rtlcopymemory, para que me entiendas, si vas a hacer un programa que sólo va a usar una base de datos local, usa pipes, si es un programa que tiene que conectar a una base de datos externa usa sockets.

 

 


  Broco
¿Como creo la base de datos?
Desde ¿MySQL Command Line Client?
o como xD

 

 


  Jesús
Con que crees una carpeta dentro de la carpeta data es suficiente.
Usa un administrador de bases de datos, yo uso EMS MySQLManager desde hace casi 10 años, pero bueno hay versiones gratuitas por ahi de administradores de mysql.

 

 


  Broco
No tengo la carpeta :S ¿La creo en..
Archivos de programa\MySQL\MySQL Server 5.1?
Si es eso ya la he creado, pero en vb.net me da un error :S
Mira lo que tengo hecho
EMS
VB.net
Aparte del EMS también tengo
Archivos de programa\MySQL\MySQL Server 5.1\data\prueba

 

 





  Jesús
No has agregado la referencia a la DLL, botón derecho en el proyecto, agregar referencias y selecciona la DLL del MySQLDriverCS.
 

 


  Broco

 

 


  Vampiro17
Hola, nose si te servira pero yo para crear bases de datos solo tengo que poner en la barra de direcciones:
localhost/phpMyAdmin
Y hay me sale ya para crear una base de datos.

 

 


  Jesús
Eso es porque no has seguido bien mis instrucciones:
http://www.wikun.com/Bases-de-datos/MySQL/Descargar-e-instalar-MySQL.html

El último paso al configurar:
PASWORD del ROOT?
Desmarca la casilla de root y dale a siguiente así te lo deja sin pass para localhost

 

 


  Jesús
Me ha llegado el Honor, que conste que sólo te ayudo porque me das +K cada vez.
 

 


  Broco
¿te doy? jajajajaa... practicamente me los robas.. yo no queria..
 

 


  Jesús
¿Como te crees que he conseguido las medallas de honor? a base de extorsionar a la gente que ayudo para que me de +K
 

 





    ¿Cuantas columnas?     | 2 columnas | 3 columnas | 4 columnas | 5 columnas | 6 columnas |  
    Escribe la dirección web de la imagen:
  Publica tu respuesta  |  Haz Click en el siguiente cuadro para escribir