mar 28 2011
Conexion CSharp [C#] a MySQL
En nuestra estimada carrera que llevamos en la UPAO tenemos el curso de Programación de Aplicaciones de Gestión, más conocido como P.A.G en el cual se realizan proyectos muy interesante con Visual Studio.net [algunos VB, otros C#] donde al final dichos proyectos, deben estar implementados con conexión a base de datos y manipulación de éstos, en aquella ocasión nos enseñaron a utilizar SQL Server 2008. En la carrera, comenzamos a programar con Java, lenguaje que nos acompaña durante los 3 primeros ciclos, en 4to ciclo aprendemos Base de datos con Oracle. Me gustaría hacer un paréntesis, y mostrar que también es posible utilizar MySQL vinculado con el poder de C# en Visual Studio.net, así que sin dar más vueltas veamos como hay que hacer!
Adicionalmente de MySQL, se requiere el conector:
http://www.mysql.com/downloads/connector/net/
Una vez instalado, procedemos a crear nuestro proyecto [Console] con Visual Studio 2010, luego de ello agregamos la referencia de la DLL del conector del MySQL para .net del siguiente modo:
Ahora que tenemos preparado el marco de trabajo con Visual Studio, vamos viendo la creación de la tabla en el MySQL:
CREATE DATABASE mysql_ifxperu; CREATE TABLE `mysql_ifxperu`.`usuario` ( `codigo` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(45) NOT NULL, `apellido` VARCHAR(45) NOT NULL, PRIMARY KEY (`codigo`) ) ENGINE = InnoDB;
Base de datos creada y tabla lista para insertar datos:
Insert into usuario(codigo, nombre, apellido) values(1,'Clayder', 'Gonzalez'); Insert into usuario(codigo, nombre, apellido) values(2,'Will', 'Medina'); Insert into usuario(codigo, nombre, apellido) values(3,'Carlos', 'Cruz'); Insert into usuario(codigo, nombre, apellido) values(4,'Fredy', 'Guibert'); Insert into usuario(codigo, nombre, apellido) values(5,'Diego', 'Cueva'); Insert into usuario(codigo, nombre, apellido) values(6,'Juan', 'Noriega'); Insert into usuario(codigo, nombre, apellido) values(7,'Cesar', 'Pacherres'); Insert into usuario(codigo, nombre, apellido) values(8,'Ali', 'Lozano');
Verificamos los datos ingresados mediante un Select:
Select * from usuario;
Nuestra pequeña base de datos de editores de este Blog está lista, regresemos con Visual Studio a codificar:
using System;
using System.Text;
using MySql.Data.MySqlClient;
namespace MySQL_IFXPeru
{
class Program
{
// Declaramos las variables:
public static MySqlConnection MySqlCnn = new MySqlConnection();
public static MySqlCommand MySqlCmd = new MySqlCommand();
public static MySqlDataReader MySqlReader;
public static string CadenaDeConexion;
static void Main(string[] args)
{
Console.Title = " Powered by: IFXPERU - IFX Informatrix";
CadenaDeConexion = "Server=localhost;"
+ "Port=3307;"
+ "Database=mysql_ifxperu;"
+ "Uid=root;"
+ "Password=";
Conectar();
Consulta();
Desconectar();
Console.ReadLine();
}
static void Conectar()
{
try
{
Console.WriteLine(CadenaDeConexion);
MySqlCnn.ConnectionString = CadenaDeConexion;
Console.WriteLine("\nConexión iniciada!\n");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
static void Desconectar()
{
// Cerramos la conexión
MySqlCnn.Close();
Console.WriteLine("\nConexión finalizada");
}
static void Consulta()
{
// Hacemos una conexión apartir del
// string CadenaDeConexion antes asignado
try
{
// Abrimos la conexión
MySqlCnn.Open();
// Definimos nuestro Query
string consulta = "select * from usuario;";
// Establecemos cuál será la conexión
MySqlCmd.Connection = MySqlCnn;
// Determinamos el comando [ nuestro query]
MySqlCmd.CommandText = consulta; //Se le asigna la consulta
// Asignamos al objeto MySqlReader la ejecución del comando
// En otras palabras, el resultado de la consulta [query]
// Se guardará en el MySqlReader
MySqlReader = MySqlCmd.ExecuteReader();
// Mostramos los resultados mientras haya datos para leer:
while (MySqlReader.Read())
{
// Empleamos el reader.FieldCount para obtener la cantidad
// de campos de la tabla solicitada
for (int i = 0; i < MySqlReader.FieldCount; i++)
{
// Reportamos medienta un Console.Write, de tal forma
// que recorra toda la fila, dejando un espacio:
Console.Write(MySqlReader[i] + " ");
}
Console.WriteLine("");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Finalmente tenemos nuestro resultado:

Que tengan un buen día!








may 18, 2011 @ 15:35:33
Hola, me gustaria aprender no solo a consultar una base de datos sino agregar los datos mediante textboxs, lo he buscado por todo internet pero nada
may 20, 2011 @ 22:11:52
Estoy con un post en proceso, justo de lo que necesitas!