MySQL - Mysql, ADO .net 2.0 y VB 2005

 
Vista:

Mysql, ADO .net 2.0 y VB 2005

Publicado por AOG (4 intervenciones) el 16/09/2005 20:15:26
Hola,
Estoy viendo con Visual Basic 2005 como funciona lo nuevo de ADO .Net 2.0 a lo que ser refiere a la clase de DbProviderFactory para utilizar un proveedor de base de datos
independiente (poder usar MS SQL Server o MySql) en mi proyecto VB 2005
he creado la siguiente rutina:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim sProveedor As String
Dim ProData As Data.Common.DbProviderFactory
Dim oDB As DbConnection '= myProvider.CreateConnection()
Dim cmDB As DbCommand
Dim drArt As DbDataReader
Dim eArt As New EArticulos
Dim sCadenaConexion As String
If MsgBox("Si->Ms Sql Server, No-> MySQL", MsgBoxStyle.YesNo) =
MsgBoxResult.Yes Then
sProveedor = "System.Data.SqlClient"
sCadenaConexion = "Data Source=SERVIDORSQL;Initial
Catalog=2003;Integrated Security=True"
Else
sProveedor = "MySql.Data.MySqlClient"
sCadenaConexion = "server=SERVIDORMySQL;user id=prueba;
password=1000; database=2005; pooling=false"
End If
ProData = DbProviderFactories.GetFactory(sProveedor)
oDB = ProData.CreateConnection()
cmDB = ProData.CreateCommand()
oDB.ConnectionString = sCadenaConexion
oDB.Open()
cmDB.Connection = oDB
cmDB.CommandText = "Select Cod, Nom, PVP from Articulos"
drArt = cmDB.ExecuteReader
eArt.Load(drArt, Data.LoadOption.OverwriteChanges, "Articulos")
MsgBox(eArt.Articulos(1).Cod & ", " & eArt.Articulos(1).Nom)
drArt.Close()
oDB.Close()
End Sub

Cuando elijo el proveedor MS SQL Server funciona, me muestra los datos del primer registro. Si elijo el proveedor MySql me da un error me muestra el siguiente mensaje:
Unable to find the requested .Net Framework Data Provider. It may not be
installed.

Este error me lo provoca en la línea:
ProData = DbProviderFactories.GetFactory(sProveedor)

En otra rutina pruebo el proveedor MySql.Data.MySqlClient directamente y
conecta con el servidor MySql 4.1 y me muestra también el primer registro.

¿Alguien sabe que es lo que está pasando?
Es que no soporta el proveedor MySql, estoy utilizando el proveedor
connector net 1.0.5 es el último que está disponible en al Web www.mysql.com,
en teoría, esta clase (DbProviderFactories) está para soportar proveedores
nativos.

Un Saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mysql, ADO .net 2.0 y VB 2005

Publicado por azenkia (3 intervenciones) el 25/09/2005 01:06:44
Hola, te tengo una consulta, ya que pudiste conectar MySQL y .NET, puesto que a mi no me resulta, baje el conector MySQL Connector NET 1.0.5 y tengo el Framework 1.1 ..., ayudame porfa!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mysql, ADO .net 2.0 y VB 2005

Publicado por AOG (4 intervenciones) el 29/09/2005 13:04:19
Hola azenkia,
bueno perdon por la tardanza. Haber si te puedo ayudar, primero debes de asegurarte que tu PC donde intentas conectar tiene acceso al servidor Mysql, es decir, si tiene creado un usuario en el servidor MySql, lo cual necesitas un administrador para crear usuarios, sino lo tienes en la página www.mysql.com lo tienes. Puedes crear un usuario con una dirección IP del PC que intenta conectar o un Usuario en la cual no se le indica IP y esto quiere decir que cualquier PC puede conectar, sobre el tema de usuario ya depende de la seguridad que tu vayas a implantar en tu sistema, pero si es importante que tengas un Usuario creado que de una u otra manera puedas y tengas permisos para conectar con el Servidor MySql. Si te digo, que esto lo hice (crear el usuario) hace varios meses y no recuerdo los pasos ha seguir exactamente.
Una vez creado el usuario y te asegures que tiene los permisos para conectar tansolo tiene que hacer en tu proyecto lo siguiente :

'Estas líneas son un ejemplo para conectar con MySql con VB .net 2003 o 2005(estas rutinas están probadas y funciona)

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim oDB As New MySql.Data.MySqlClient.MySqlConnection
Dim cmDB As New MySql.Data.MySqlClient.MySqlCommand
Dim drArt As MySql.Data.MySqlClient.MySqlDataReader
Dim eArt As New EArticulos

oDB.ConnectionString = "server=servidorsql;user id=UsuPrueba; password=1010; database= BDPrueba; pooling=false"
oDB.Open()
'Aquí ya aconectado, lo siguiente es rellenar una entidad
'cmDB.Connection = oDB
'cmDB.CommandText = "Select Cod, Nom, PVP from Articulos"
'drArt = cmDB.ExecuteReader
'eArt.Load(drArt, Data.LoadOption.OverwriteChanges, "Articulos")
'MsgBox(eArt.Articulos(1).Cod & ", " & eArt.Articulos(1).Nom)
'drArt.Close()
oDB.Close()
End Sub

Nota: tienes que cambiar el nombre del usuario y de la base de datos en la cadena de conexión con los nombres tuyos.
El objeto eArt es una entidad (dataset tipado) donde tiene diseñada la tabla Articulos que está en la base de datos BDPrueba. Asi que te he comentado las últimas líneas para que no te de errores ya que tiene que tener una tabla articulos en la base de datos DBPrueba y creada la entidad EArticulos.

Espero que te haya servido de ayuda. Un saludo,
AOG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar