Codigo para Concetar Mysql Con Csharp

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

Cómo conectarse a una base de datos MySQL con C#

en Winforms y XAMPP

https://youtu.be/2g4MPJ3fJt0

XAMPP es una solución de servidor web local multiplataforma open source y gratuita,


creada y enpaquetada por Apache Friends, consistiendo básicamente de un servidor
HTTP Apache, MariaDB Database e interpretes para scripts en lenguajes de
programación como PHP y PERL.

Si usas XAMPP para el desarrollo de páginas web etc, sabes lo fácil que es crear y
manipular bases de datos con el módulo integrado de PHPMyAdmin. Tambien
encontrarás fácil trabajar con esta en PHP, pero si tienes tambien conocimiento en .NET
puedes trabajar tambien con ella. MySQL ofrece un conector bastante sencillo que te
permite ejecutar consultas a una base de datos alojada en PHPMyAdmin desde tu
ventana en Winforms.

En este articulo, te mostraremos como acceder a una base de datos creada en


PHPMyAdmin usando Winforms en C# fácilmente.

Requisitos
 Visual Studio (cualquier versión).
 Extensión de conector para MySQL .NET.
 Distribución de XAMPP (asumiremos que sabes como usar mysql y xampp).

Implementación
Llevar esta tarea a cabo es más fácil de lo que piensas, para lograrlo sigue estos pasos:

 Agrega la referencia al conector de MySQL desde tu proyecto.


 Crea tu base de datos (ignora esto si ya tienes una) en MySQL con
PHPMyAdmin.
 Comienza a ejecutar consultas.

Agregar referencia al conector de MySQL al proyecto

Para iniciar, necesitarás instalar el conector de MySQL y .NET instalado en tu sistema


pues necesitas agregar una referencia a la DLL luego. Puedes escoger una de las ultimas
versiones en el sitio web de MySQL aquí.
Puedes escoger entre una instalación completa y típica:

Luego de la instalación, procede a crear una ventana vacía en Winforms como siempre
lo haces. Ahora agrega la referencia al conector de MySQL en tu proyecto. Localiza el
explorador de solución en la parte superior derecha de Visual Studio cuando tu proyecto
este abierto, da click derecho en Referencias y luego en Agregar referencias en el
menú contextual:
En el menú que aparecerá, navega a Extensiones y selecciona la casilla de
MySql.Data (MySql.Data.dll) y oprime en OK:

Ahora, será posible ejecutar consultas a tu base de datos en MySQL con C#.

Creando una base de datos de prueba en PHPMyAdmin (en localhost)


Como mencionamos anteriormente, asumimos que ya tienes conocimiento en consultas
de MySQL, que tienes instalado Xampp y sabes como acceder a PHPMyAdmin.

Lo primero que tienes que hacer, es abrir el panel de control de Xampp y activar los
servicios de apache y mysql:

Luego navega a phpmyadmin accediendo a la URL  http://localhost/phpmyadmin y


finalmente accediendo al area de bases de datos.

Crea la base de datos (en este ejemplo nuestra base de datos será test) y crearemos una
base de datos llamada user.

Nota

Recuerda activar la opción autoincrementable al campo ID, de otra manera necesitarás


insertar un ID por ti mismo en cada inserción de datos.
Ahora que tu base de datos "test" contiene al menos una tabla "user", podemos ejecutar
consultas.

Usando C# para conectar y ejecutar consultas

Ahora viene la parte divertidas ! Escribiremos algo de código para interactuar con la
base de datos. Primero, no olvides agregar la referencia a la clase de MySqlClient en tu
código:

using MySql.Data.MySqlClient;

Ahora puedes entender como funciona la conexión y cómo ejecutar una consulta usando
el siguiente snippet:

// La siguiente linea es la que provee la conexión entre C# y MySQL.


// Debes cambiar el nombre de usuario, contrasenia y nombre de base de
datos
// de acuerdo a tus datos
// Puedes ignorar la opción de base de datos (database) si quieres
acceder a todas
// 127.0.0.1 es de localhost y el puerto predeterminado para conectar
string connectionString =
"datasource=127.0.0.1;port=3306;username=root;password=;database=test;
";
// Tu consulta en SQL
string query = "SELECT * FROM user";

// Prepara la conexión
MySqlConnection databaseConnection = new
MySqlConnection(connectionString);
MySqlCommand commandDatabase = new MySqlCommand(query,
databaseConnection);
commandDatabase.CommandTimeout = 60;
MySqlDataReader reader;

// A consultar !
try
{
// Abre la base de datos
databaseConnection.Open();

// Ejecuta la consultas
reader = commandDatabase.ExecuteReader();

// Hasta el momento todo bien, es decir datos obtenidos

// IMPORTANTE :#
// Si tu consulta retorna un resultado, usa el siguiente proceso
para obtener datos

if (reader.HasRows)
{
while (reader.Read())
{
// En nuestra base de datos, el array contiene: ID 0,
FIRST_NAME 1,LAST_NAME 2, ADDRESS 3
// Hacer algo con cada fila obtenida
string[] row = { reader.GetString(0), reader.GetString(1),
reader.GetString(2), reader.GetString(3) };
}
}
else
{
Console.WriteLine("No se encontraron datos.");
}

// Cerrar la conexión
databaseConnection.Close();
}
catch (Exception ex)
{
// Mostrar cualquier excepción
MessageBox.Show(ex.Message);
}

Y eso es todo! Básicamente, solo necesitas cambiar la consulta y comenzar a


probar. Puedes leer más acerca de la cadena de conexión y todas las propiedades
disponibles aquí.

Ejemplos básicos de consultas


En estos ejemplos te mostraremos como ejecutar las tareas más básicas en MySQL
(CRUD):

Nota que usaremos un elemento listView con 4 columnas (al igual que en nuestra base
de datos), 3 cajas de texto y 2 botones.

Crear

En el siguiente snippet, insertaremos un usuario a la tabla user de la base de datos test:

private void SaveUser()


{
string connectionString =
"datasource=127.0.0.1;port=3306;username=root;password=;database=test;
";
string query = "INSERT INTO user(`id`, `first_name`, `last_name`,
`address`) VALUES (NULL, '"+textBox1.Text+ "', '" + textBox2.Text +
"', '" + textBox3.Text + "')";
// Que puede ser traducido con un valor a:
// INSERT INTO user(`id`, `first_name`, `last_name`, `address`)
VALUES (NULL, 'Bruce', 'Wayne', 'Wayne Manor')

MySqlConnection databaseConnection = new


MySqlConnection(connectionString);
MySqlCommand commandDatabase = new MySqlCommand(query,
databaseConnection);
commandDatabase.CommandTimeout = 60;

try
{
databaseConnection.Open();
MySqlDataReader myReader = commandDatabase.ExecuteReader();

MessageBox.Show("Usuario insertado satisfactoriamente");

databaseConnection.Close();
}
catch (Exception ex)
{
// Mostrar cualquier error
MessageBox.Show(ex.Message);
}
}

Mostrar (obtener datos)

En el siguiente snippet, listaremos todos los usuarios en la base de datos dentro del
elemento listView (si disponible, sino en la consola):

private void listUsers()


{
string connectionString =
"datasource=127.0.0.1;port=3306;username=root;password=;database=test;
";
// Seleccionar todo
string query = "SELECT * FROM user";

MySqlConnection databaseConnection = new


MySqlConnection(connectionString);
MySqlCommand commandDatabase = new MySqlCommand(query,
databaseConnection);
commandDatabase.CommandTimeout = 60;
MySqlDataReader reader;

try
{
databaseConnection.Open();
reader = commandDatabase.ExecuteReader();

// Si se encontraron datos
if (reader.HasRows)
{
while (reader.Read())
{
// ID
First name Last Name Address
Console.WriteLine(reader.GetString(0) + " - " +
reader.GetString(1) + " - " + reader.GetString(2) + " - " +
reader.GetString(3));
// Ejemplo para mostrar en el listView1 :
//string[] row = { reader.GetString(0),
reader.GetString(1), reader.GetString(2), reader.GetString(3) };
//var listViewItem = new ListViewItem(row);
//listView1.Items.Add(listViewItem);
}
}
else
{
Console.WriteLine("No se encontro nada");
}

databaseConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

Actualizar

Actualizar datos de la fila con ID x:

private void updateUser()


{
string connectionString =
"datasource=127.0.0.1;port=3306;username=root;password=;database=test;
";
// Actualizar la fila user con ID 1
string query = "UPDATE `user` SET
`first_name`='Willy',`last_name`='Wonka',`address`='Chocolate factory'
WHERE id = 1";

MySqlConnection databaseConnection = new


MySqlConnection(connectionString);
MySqlCommand commandDatabase = new MySqlCommand(query,
databaseConnection);
commandDatabase.CommandTimeout = 60;
MySqlDataReader reader;

try
{
databaseConnection.Open();
reader = commandDatabase.ExecuteReader();

// Actualizado satisfactoriamente

databaseConnection.Close();
}
catch (Exception ex)
{
// Ops, quizás el ID no existe
MessageBox.Show(ex.Message);
}
}

Eliminar

Elimina una fila con ID (x):

private void deleteUser()


{
string connectionString =
"datasource=127.0.0.1;port=3306;username=root;password=;database=test;
";
// Borrar la fila con ID 1
string query = "DELETE FROM `user` WHERE id = 1";

MySqlConnection databaseConnection = new


MySqlConnection(connectionString);
MySqlCommand commandDatabase = new MySqlCommand(query,
databaseConnection);
commandDatabase.CommandTimeout = 60;
MySqlDataReader reader;

try
{
databaseConnection.Open();
reader = commandDatabase.ExecuteReader();

// Eliminado satisfactoriamente

databaseConnection.Close();
}
catch (Exception ex)
{
// Ops, quizás el id no existe
MessageBox.Show(ex.Message);
}
}

Que te diviertas !

OTRO

Codigo para concetar Mysql con cSharp

public static bool probarConexion()


{
MySqlConnection con;
String servidor = "localhost";
String puerto = "3306";
String usuario = "usuario";
String password = "clave";
String database = "base_datos";

//Cadena de conexion
Sesion.cadenaConexion =
String.Format("server={0};port={1};user id={2}; password={3};
database={4}", servidor, puerto, usuario, password, database);

con = new MySqlConnection(Sesion.cadenaConexion);


con.Open();//se abre la conexion
if (con.State == System.Data.ConnectionState.Open)
{
return true;
}
else
{
return false;
}
}

Hola, estoy tratando de conectarme a una BD de MySQL de un servidor desde una ip


publica y un puerto, pero no puedo, porfa les pído un poco de ayuda con esto

using MySql.Data.MySqlClient;

//Se procede con la conexion


con = new MySqlConnection();
con.ConnectionString =
"Server=xx.xx.xx.xx;Port=xxx;Database=nombrebd;Uid=root;Pwd=clave;";
try
{
con.Open();
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM
usuarios", con);
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Pero me da este error: "Se produjo un error durante el intento de conexión ya que la
parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se
produjo un error en la conexión establecida ya que el host conectado no ha podido
responder"

También podría gustarte