feed twitter facebook LinkedIn facebook

Microsoft.Net » Conexión MYSQL y C# VS 2005

marzo 31, 2012 por Pablo Ruiz 5 Comentarios Imprimir Imprimir

Buenas nuevamente hoy e venido a dejarles un post relacionado a .NET en su sabor C#. Mostraré lo simple que es conectar ambos. Bueno, manos a la obra!

Primeramente lo que tenemos que realizar es la descarga del conector a MySQL, Conector MYSQL .Net 6.2.4

Seguido crearemos una nueva aplicacion de consola que automáticamente nos deja apuntados a un MAIN dentro de él haremos todo. Solo para el ejemplo, si es que realizas aplicaciones de mayor tamaño es recomendable mas orientación a objeto.

Como ya instalamos MYSQL Connector solamente agregamos la referencia. Click derecho sobre referencias - Agregar referencias >> localizar MYSQL.DATA.

Y con eso tendríamos nuetra referencia agregada, solo nos quedaría apuntarla a nuestra Console Aplication.

Asumo que tienes instalado MYSQL Server en tu computador personal, o te estas apuntando a algún servidor remoto" Si tu respuesta es que no tienes MYSQL Server instalado, ni menos un Servidor te recomiendo que localices la aplicación WAMP Sever trae varias cosas entre ellas MySQL, PHP, Apache, PHPMyAdmin

Bueno continuemos ahora vamos a lo que es código...

Crearemos un método llamado "EjecutarSelect" con dos parámetros que seran la conexión y la query, de la siguiente manera:

  1. private static void EjecutarSelect(MySqlConnection cnn, string Select)
  2. {
  3. cnn.Open();
  4. MySqlCommand ComandoSelect = new MySqlCommand(Select);
  5. ComandoSelect.Connection = cnn;
  6. MySqlDataReader Resultado;
  7. Resultado = ComandoSelect.ExecuteReader();
  8. while (Resultado.Read())
  9. {
  10. Console.WriteLine("id:" + Resultado.GetString(0));
  11. Console.WriteLine("nombre:" + Resultado.GetString(1));
  12. Console.WriteLine("Apellido:" + Resultado.GetString(2));
  13. Console.WriteLine("Direccion:" + Resultado.GetString(3));
  14.  
  15. }
  16. cnn.Close();
  17. }

Explicación de lo anterior

  1. Abrimos la conexión
  2. Creamos un objeto del tipo MySqlCommand que es quién llevará la consulta que hemos realizado
  3. Ahora al objeto que creamos le decimos que se apunte a la conexión que estamos pasando por parámetro
  4. Luego creamos nuestro MySqlDataReader que como su nombre lo dice "Reader" leerá los datos obtenidos por la consulta
  5. En ésta linea le decimos al DataReader que lea los datos del objeto que creamos anteriormente del tipo MySqlCommand(que es quién tiene la consulta)
  6. bueno ahora lo unico que hacemos es recorrer un ciclo while para obtener los datos
  7. No creo que necesite mayor explicación pero el GetString, por lógica nos devuelve un string en la posición indicada

Ahora nuestro método que modificará datos:

  1. private static void InsertarDatos(MySqlConnection cnn, string query)
  2. {
  3. cnn.Open();
  4. MySqlCommand comandoInsertar = new MySqlCommand(query);
  5. comandoInsertar.Connection = cnn;
  6. comandoInsertar.ExecuteNonQuery();
  7. cnn.Close();
  8. }

Explicación del método InsertarDatos con dos parámetros como el anterior método

  1. Abrimos la conexión
  2. Creamos nuestro objeto que tendrá la consulta
  3. Le decimos a nuestro objeto que se apunte a la conexión
  4. Ejecutamos la consulta
  5. Cerramos la conexión
  1. private static void ActualizarDatos(MySqlConnection cnn, string query)
  2. {
  3. cnn.Open();
  4. MySqlCommand comandoUpdate = new MySqlCommand(query);
  5. comandoUpdate.Connection = cnn;
  6. comandoUpdate.ExecuteNonQuery();
  7. cnn.Close();
  8. }

Explicación del método ActualizarDatos:

  1. Abrimos la conexión
  2. Creamos nuestro objeto que tendrá la consulta
  3. Apuntamos la conexión a nuestro objeto
  4. Ejecutamos la consulta
  5. Cerramos conexión

Bueno ya tenemos nuestros método listo, nos queda solo apuntar los método al main y crear nuestra conexión

  1. string CadenaConexion = "Server=localhost;Database=lineadecodigo;Uid=root;Pwd=;";
  2.  
  3. MySqlConnection cnn = new MySqlConnection(CadenaConexion);
  4.  
  5. InsertarDatos(cnn, "INSERT INTO USUARIO(NOMBRE,APELLIDO,DIRECCION) VALUES('Victor','Cuervo','Avila');");
  6. EjecutarSelect(cnn, "SELECT * FROM usuario");
  7. ActualizarDatos(cnn, "UPDATE USUARIO SET NOMBRE='MODIFICADO' WHERE ID=2");
  8. Console.ReadKey();
  1. Creamos un String que tendrá la conexión Standar de MYSL
  2. Creamos un MySqlConnection que tendrá en su parámetro la cadenadeConexion
  3. Llamamos al método InsertarDatos le pasamos por parámetro la conexión y la consulta
  4. Llamamos al método EjecutarSelect le pasamos por parámetro la conexión y la consulta
  5. Llamamos al método ActualizarDatos le pasamos por parámetro la conexión y la consulta
  6. Usamos Console.readKey(); para que la pantalla negra no se cierre automáticamente y puedas ver los datos

Se me olvidaba... Para este ejemplo estoy usando la siguiente tabla:

  1. CREATE DATABASE lineadecodigo;
  2. USE lineadecodigo;
  3.  
  4. CREATE TABLE usuario(
  5. id INT NOT NULL AUTO_INCREMENT,
  6. nombre CHAR(20)NOT NULL,
  7. apellido CHAR(15)NOT NULL,
  8. direccion CHAR(40)NOT NULL,
  9. PRIMARY KEY (id));

Una tabla llamada usuario con varios campos. El ID auto_increment y primary key

Bueno eso es todo es super simple llevar a cabo ésto... inténtelo y cuenten como les vá.

Error en el Codigo
Error en el código
Foro sobre C#
Foro sobre C#
tags: , ,

Artículos relacionados:

5 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

  1. camilo
    abril 10, 2012 #

    Que bien gracias por el aporte, lo probare!!

  2. PHX
    febrero 13, 2013 #

    Siempre es mejor pasar los parámetros usando la coleccion de Paramters y no en la propia sentencia SQL
    Un saludo y felicidades por este sitio!

  3. denis
    diciembre 26, 2013 #

    Echa un vistazo a una herramienta gratuita – Valentina Studio. Producto asombroso! OMI es el mejor gestor de mysql, para todas las plataformas. http://www.valentina-db.com/en/valentina-studio-overview

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*