[Ayuda] Sistema en VB.Net

Iniciado por oscarj24, 10 Julio 2010, 01:50 AM

0 Miembros y 1 Visitante están viendo este tema.

oscarj24

Hola a todos, queria preguntarles algo

he creado un sistema en vb.net que se conecta a una base de datos mysql
de un servidor web mediante ODBC.

El problema es que no consigo que el ejecutable se conecte a la DB si es que no se instala el driver ODBC en la PC donde se correra la aplicacion

Mi pregunta es: hay alguna forma de crear una referencia a ODBC... alguna dll? para no tener que instalar el ODBC driver en cada pc donde se va a ejecutar la aplicacion?...

gracias y espero me puedan ayudar

PD. Me conecto mediante una cadena de conexion, nada de DSN ya que es un problema .. saludos! ;D

[D4N93R]

HINT: System.Data.Odbc

O, mejor aún googlea alguna clase de conexión a MySql que deben de haber algunas por ahí!

:)

oscarj24

Gracias por la informacion pero aun no consigo hacer lo que decia en mi post... de todas maneras vale el intento  ;D

43H4FH44H45H4CH49H56H45H

Yo uso MySQL Connector Net 5.1.7, para hacerlo portable solo se necesita copiar MySql.Data.dll (que esta en archivos de programa\mysql\... )a la carpeta del proyecto y hacer la referencia a la misma. Asi se puede ejecutar la aplicacion en cualquier PC solo con MySql.Data.dll al lado de la aplicación y sin instalar nada más.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

oscarj24

Si he intentado eso pero con la dll del MySQL ODBC Connector que esta en Archivos de Programa/Mysql/ y eso... pero cuando intento agregar la referencia a dicha dll me aparece un mensaje de error que dice que la dll no es valida o no es del componenete de ensamblado correcto, algo asi.

Que pasaria si intentaria usar el driver que tu usas, funcionaria??

oscarj24

#5
Cita de: 43H4FH44H45H4CH49H56H45H en 11 Julio 2010, 16:14 PM
Yo uso MySQL Connector Net 5.1.7, para hacerlo portable solo se necesita copiar MySql.Data.dll (que esta en archivos de programa\mysql\... )a la carpeta del proyecto y hacer la referencia a la misma. Asi se puede ejecutar la aplicacion en cualquier PC solo con MySql.Data.dll al lado de la aplicación y sin instalar nada más.

Otra consulta? como haces tu cadena de conexion con dicho driver? en mi caso con el MySQL ODBC Connector es asi:

Public con As New OdbcConnection("Driver={MySQL ODBC 5.1 Driver};Server=server.com;Database=db; User=user;Password=pass;Option=3")

como es con MySQL Connector .Net? Estoy intentado conectarme a una db remota

[D4N93R]

Pues la cadena de conexión está bien!

oscarj24

Creo que no me entienden, lo que intento hacer es conectarme a una DB remota (ya lo he conseguido) el problema esta al hacer portable mi aplicacion ya que los drivers no se adjuntan a la aplicacion y, por lo tanto, no logro conexion.

Utilizo MySQL ODBC Driver pero al hacer referencia a la DLL de dicho driver para que el proyecto se ejecute siempre sin problemas, no me lo permite ya que el visual dice que no es una dll valida

Por lo tanto, opte por usar el ODBC .NET y si me permitio hacer una referencia a "Microsoft.Data.Odbc.dll" pero solo permite conexiones ADO, Oracle, y SQL Server pero MySQL creo que no.

Y nose que mas hacer para que funcione  ;D
Espero haberme explicado bien, saludos

43H4FH44H45H4CH49H56H45H

Cita de: oscarj24 en 11 Julio 2010, 18:51 PM
Otra consulta? como haces tu cadena de conexion con dicho driver? en mi caso con el MySQL ODBC Connector es asi:

Public con As New OdbcConnection("Driver={MySQL ODBC 5.1 Driver};Server=server.com;Database=db; User=user;Password=pass;Option=3")

como es con MySQL Connector .Net? Estoy intentado conectarme a una db remota

un ejemplo simple en C#:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace SampleMySql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MySqlConnection Conexion = new MySqlConnection("Database=mysql; Data Source=localhost; User Id=root; Password=mypass;");
            Conexion.Open();
            MySqlCommand ComandoSelect = new MySqlCommand("Select * from db");
           
            ComandoSelect.Connection = Conexion;

            MySqlDataReader Resultado;
            Resultado = ComandoSelect.ExecuteReader();
            MySqlDataReader ResultadoScema = Resultado;
            while (ResultadoScema.Read())
            {
                listBox1.Items.Add(ResultadoScema.GetString(3));
            }
            ResultadoScema.Close();
        }
    }
}


Esta es la que uso:

http://dev.mysql.com/downloads/connector/net/5.1.html

Y funciona remotamente o localmente (da igual).

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

oscarj24

Bueno, ya lo logre y te explico... las cosas no eran "tan faciles" en realidad si pero ya vi el camino adecuado.. es asi:

En VB.net
- Descargar MySQL Connector .Net
- Agregar una referencia a MySQL.Data.dll
- Luego hacer un import
Código (vbnet) [Seleccionar]
  Imports MySql.Data.MySqlClient
- Y por ultimo, en la cadena de conexion, en vez de usar el nombre del server,
  colocar la IP
Código (vbnet) [Seleccionar]
  Public con As New MySqlConnection "server=LA_IP_DEL_SERVER;uid=username;pwd=password;database=tuDB")

Todo esto permite conectarte a una DB remota (como en mi caso: una DB MySQL en un servidor web, administrado por PhpMyAdmin) sin necesidad de estar instalando drivers en la pc donde se va a ejecutar la aplicacion ya que la dll siempre se adjunta a nuestro aplicativo ;)

Por ese lado todo aclarado, pero ahora sigo con otra duda:
como puedo hacer para que mi aplicacion sea lo mas "portable" posible?
por mi, me gustaria no tener que usar un framework asi como muchas aplicaciones
comerciales pero.. es esto posible?

me imagino que no ya que la aplicacion depende de .net pero habra alguna forma de capturar las dependecias de la aplicacion con el framework para que cuando se corra en otra pc no tenga necesidad de instalar el .net framework 3.5 por completo??  ::) espero sugerencias, saludos!