Conectar MySQL con .NET, Tutorial C#


Pues despues de mucho tiempo de espera aqui les traigo la segunda parte y ultima de como conectarse desde visual studio.Net 2008 a una base de datos de MySQL, primero que nada tienen que leer y seguir los paso mencionados en el primer post Conectar MySQL con .NET Parte 1, para que puedan trabajar.

Lo que vamos a hacer es conectarnos a una base de datos, hacer una consulta y mostrarla en una linea de comandos, para esto abrimos Visual Studio 2008 y creamos un nuevo proyecto de consola y le asignamos un nombre y le damos en aceptar, ya que nos haya generado el proyecto le damos en el «Solution Explorer» y cargamos el dll de MySQL, igual que se especifica en el post anterior.

una vez hecho esto vamos a crear nuestra coneccion con MySQL, para esto agregamos el siguiente codigo en un metodo o una clase aparte:

        public static string Consulta() {
            string path = "DataBase=test;DataSource=localhost;Port=3306";
            string consulta = "";
            try
            {
                MySqlConnection con = new MySqlConnection(path);
                con.Open();
            }
            catch (Exception ex) { }
        } 

Donde Path contiene el nombre de la base de datos, el origen de la base de datos y el puerto desde el cual se esta ejecutando MySQL, todos estos campos son necesarios para poder hacer la coneccion, despues de especificar esto en una variable string, lo que hacemos es crear una variabl del tipo «MySqlConnection» que es la que nos va permitir hacer la coneccion y es por eso que le tenemos que pasar como parametro el string creado anteriormente. Una vez creado el anlace es necesario abrir la coneccion para poder trabajar sobre la base de datos, esto es simple solo es variable.Open();

Ya estamos conectados con nuestra base de datos, ahora lo que necesitamos es poder trabajar sobre ella, en este caso solo mostraremos como hacer una consulta, para esto necesitamos usar 2 variables de diferentes tipo la primera sera del tipo «MySqlDataAdapter» y la otra del tipo «DataSet», (Para poder utilizar la variable DataSet es necesario utilizar la libreria System.Data) Ahora para hacer la consulta ingresamos el siguiente codigo:

                string query = "select * from users";

                MySqlDataAdapter da = new MySqlDataAdapter(query,con);

                DataSet ds = new DataSet();

                da.Fill(ds,"tablas");

                con.Close();

Donde la variable query de tipo string es la consulta a realizar, en este caso yo estoy seleccionando todos los campos de la tabla user, en la siguiente linea mi dataAdapter me permitira realizar la consulta en la base de datos, es decir Visual Studio en si no hace la consulta, hace la peticion a MySQL y este solo regresa los resultados que posteriormente nosotros vamos a almacenar en nuestro DataSet.

Hasta hora todo facil, lo siguiente es mostrar nuestros resultados en la linea de comandos para eso solo ingresamos el siguiente codigo:

                int tam = ds.Tables["tablas"].Rows.Count;

                for (int i = 0; i < tam; i++) {

                    consulta += ds.Tables["tablas"].Rows[i][1].ToString() + "\n";

                }

Con esto lo que hacemos es almacenar el numero de filas de la tabla en la variable tam, que despues utilizaremos para acceder a cada fila dentro de la tabla por medio de un for, cabe destacar que ahorita no estamos trabajando directamente sobre la Base de datos es decir que solo estamos trabajando sobre los datos recuperados y almacenados en el dataset.

ahora en el voidMain solo colocamos el siguiente codigo

 static void Main(string[] args)

        {

            Console.WriteLine(Consulta());

            Console.ReadLine();

        } 

Y con eso terminamos este pequeno tutorial, al final pudimos acceder a la base de datos de MySQL hacer una consulta y obtener los resutlados que despues almacenamos en una variable y a su vez pudimos mostrarlos en una linea de comandos, eso es todo por el momento espero les sirva y les ayude.

result

Cualquier duda, comentario o sugerencia, por favor comentenlo.

14 comentarios en “Conectar MySQL con .NET, Tutorial C#

  1. hola tengo una duda, funciona con cualqier version de SQL Server?.. tengo que entregar un proyecto escolar y me urge..

    otra cosa, me marca un error con el metodo consulta, dice que no siempre regresa string o algo por el estilo.. saludos

    1. Estimado lector, te recomiendo leas claramente de nuevo el post, si te fijas al inicio hay una parte que dice «antes de seguir este tutorial, por favor leer el anterior», donde se mensiona lo que tu dices, asi que te recomiendo leerlo, para que aclares tus dudas.

  2. Necesito conectarme a un Mysql, pero no puedo utilizar la libreria que aqui se menciona ya que una de las limitaciones del proyecto es solo utilizar librerias del .Net framework.
    sabes como hacerlo?

    te estaría muuuuuy agradecida

  3. yo tengo que hacer una consulta en un formulario para poder buscar mediante codigo de barra es asi
    private void txtcodigo_TextChanged(object sender, EventArgs e)
    {
    string error = «»;
    try
    {

    dgvDescripcion.DataSource = con.Consultar(«select * from articulos where Upc like ‘ » + txtcodigo.Text + «%’ «);

    //select * from articulos where Upc like ‘6%’

    }
    catch (MySqlException ex)
    {
    error = ex.Message;
    }

    }

    pero me funciona en la base de datos mysql pero en c# no me funciona no realiza la busqueda
    ojala y me puedan ayudar.
    saludos

  4. Hola, probé tu manera pero me da un error de tipos en lo que recibe la string consulta, también me obliga a quitar el con.Open dice que no se usa. Ahora voy a probar otra manera distinta de usar estos objetos como dataset y eso, ya os cuento.

  5. El error que tiene este tutorial, es que le falto copiar la última línea en el primer ejemplo (el «return»). Porque en la definición de la función, se especifica que devolvera una «constant string», y ese es el error que da al principio cuando se copia el código.

    El programa completa quedaría así.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MySql.Data.MySqlClient;
    using System.Data;

    namespace ConsoleApplication1
    {

    class Program
    {
    static void Main(string[] args)
    {

    Console.WriteLine(Consulta());
    Console.ReadLine();
    }

    public static string Consulta()
    {
    string path = «DataBase=test;DataSource=localhost;Port=3306»;
    string consulta = «»;
    try
    {
    MySqlConnection con = new MySqlConnection(path);
    con.Open();

    string query = «select * from cliente»;

    MySqlDataAdapter da = new MySqlDataAdapter(query, con);

    DataSet ds = new DataSet();

    da.Fill(ds, «tablas»);

    con.Close();

    int tam = ds.Tables[«tablas»].Rows.Count;

    for (int i = 0; i < tam; i++)
    {

    consulta += ds.Tables["tablas"].Rows[i][1].ToString() + "\n";

    }

    }
    catch (Exception ex) { }
    //aqui esta el return consulta, sin el no se puede compilar, y el Console.Writeline no escribiría nada
    return (consulta);
    }

    }

    A pesar de ese pequeño error de copia, me parece un buen tutorial. Saludos.
    }

  6. The type or namespace name ‘DataSet’ could not be found (are you missing a using directive or an assembly reference?)

    tengo ese error, por favor ayuda. saludos

Replica a Matias Fito Cancelar la respuesta