You are on page 1of 13

CONECTAR MSQL EN C#

http://franklintutoriales.blogspot.com/2013/07/insertarmodificar-eliminar-y-consultar.html

Hola amigos, bienvenidos a este importante post, este es el inicio para


aprender a crear una conexin en C# con MySQL, posteriormente realizaremos
una insercin, modificacin y eliminacin de datos en una base de datos desde
C#, pero por ahora lo importarte es crear la base de datos y crear la cadena
de conexin en C#.
Lo primero que debemos hacer es crear la base de datos en MySQL, lo cual yo
uso el software MySQL Workbench para crear bases de datos, si quieres
aprender su uso y creacin de base de datos (incluyendo diagrama E-R)
puedes ver los tutoriales aqu en este post.
En el siguiente vdeo muestro una breve introduccin y la creacin de la base
de datos que utilizaremos para la ejecucin de nuestra conexin:

Link del vdeo: http://www.youtube.com/watch?v=jI9c_wYgU1g


Ac esta el codigo para crear la BD y su respectiva
tabla:
create database Tutorial;
use Tutorial;
CREATE TABLE Clientes (
IdCliente INT NOT NULL AUTO_INCREMENT,
Nombre VARCHAR(50) NOT NULL,
Apellido VARCHAR(45) NOT NULL,
Fecha_Nacimiento DATE NOT NULL,
Direccion Text,
PRIMARY KEY (IdCliente)
) ENGINE=InnoDB;
Lo siguiente que necesitamos es instalar el driver que proporciona mysql para
conectarnos desde .NET , el cual se llama MySQL Connector/Net, y lo puedes
descargar desde Aqu.
En el siguiente video les muestro la instalacin: http://www.youtube.com/watch?
v=m5WwaFwK3Wo

Luego de haber instalado el conector de mysql se puede decir que ya estamos


listos para trabajar en C# y conectarnos con la base de datos que hemos creado
en mysql.
Lo que haremos sera crear un nuevo proyecto Windows forms al cual le
llamaremos ConexionCSharpconMySQL al cual le crearemos un formulario
como este:

OJO!!! en el ToolStrip de la parte de abajo para que se muestre el texto e


imagenes en los botones, a la propiedad DisplayStyle se le debe de asignar
ImageAndText.
Ahora lo que vamos hacer es agregar una nueva clase a la cual le llamaremos
BdComun, dicha clase nos servir para tener la cadena de conexin hacia
MySQL. por lo cual tendr el siguiente cdigo:
public class BdComun
{
public static MySqlConnection ObtenerConexion()
{
MySqlConnection conectar = new MySqlConnection("server=127.0.0.1;
database=Tutorial; Uid=root; pwd=;");

conectar.Open();
return conectar;

}
Explicacin del cdigo:
ObtenerConexion = Nombre del mtodo que nos conectara a la base de

datos.
Server = Servidor de MySQL.
database = Nombre de la base de datos a la cual nos conectamos.
Uid = Nombre
del
usuario de
Mysql
(por
pwd = Contrasea del usuario (dejar en blanco sino tiene).

defecto

"root")

Finalmente el video practico para entender mas:


Link del video: http://www.youtube.com/watch?v=e8R3-EXqQIM (entra y dale like)

Espero que te haya servido, en el siguiente articulo aprenderemos a insertar


registros a la bd, si te gustaron los vdeos dale like en youtube y comprtelos!!.
Adios!
Clic Aqu para ver la continuacin.

Insertar, modificar, eliminar y


consultar registros en MySQL
desde C# - parte 1
Hola amigos, bienvenidos nuevamente aun nuevo articulo relacionado a C# y
MySQL, anteriormente aprendimos a conectarnos a MySQL desde C# puedes
ver Aqu el post, lo que aprenderemos ahora sera a insertar registros desde C#
hacia la base de datos MySQL, pues ya teniendo listas las conexiones, de
seguro recuerdan que creamos una clase llamada BdComun esta a su vez
contiene.

Un mtodo llamado ObtenerConexion el cual tiene la cadena de conexion,


entonces ahora lo que vamos hacer sera crear un nueva clase llamada
Cliente que
basicamente
en programacin Orientada
a
Objetos representara un objeto cliente, en este sentido debe tener
datos relacionados al cliente, debemos agregar los mismo campos que
tenemos
en
la
tabla
Clientes
de
la
base
de
datos.
Este sera el cdigo de la clase Cliente:
public class Cliente
{
public int Id { get; set; }
public string Nombre { get; set; }
public string Apellido { get; set; }
public string Fecha_Nac { get; set; }

public string Direccion { get; set; }


public Cliente() { }
public Cliente(int pId, string pNombre, string pApellido, string
pFecha_Nac, string pDireccion)
{
this.Id = pId;
this.Nombre = pNombre;
this.Apellido = pApellido;
this.Fecha_Nac = pFecha_Nac;
this.Direccion = pDireccion;
}
}
Como ven tiene cinco propiedades que son equivalentes a los cinco campos de la
tabla, al igual tiene un constructor vaci public Cliente() { } el cual se utiliza
para crear los objetos ya que de esta forma no recibe parmetros y podemos
invocarlo sin problemas, por otra parte tenemos otro constructor el cual tiene
cinco parmetros, podemos interpretar que los parametros nos serviran para
enviar o trasportar los datos hacia las propiedades y posteriormente donde
nosotros los queramos utilizar.
Lo siguiente que haremos ser agregar un nueva clase ahora le llamaremos
ClientesDAL esta clase tendr mtodos que nos ejecutaran comandos hacia
MySQL tales como un Insert, delete, update, entre otros, por el momento vamos
aadir el mtodo agregar el cual insertara un cliente a la BD, la
clase quedara as:
public class ClientesDAL
{
public static int Agregar(Cliente pCliente)
{
int retorno = 0;
MySqlCommand comando=new MySqlCommand(string.Format("Insert
into clientes (Nombre, Apellido, Fecha_Nacimiento, Direccion) values
('{0}','{1}','{2}', '{3}')",
pCliente.Nombre, pCliente.Apellido, pCliente.Fecha_Nac,
pCliente.Direccion), BdComun.ObtnerCOnexion());
retorno = comando.ExecuteNonQuery();
return retorno;
}

}
Ya teniendo esto, nos dirigimos al formulario y programamos en el
evento clic del botn, lo que se debe hacer es crear un cliente, es decir llenar
sus respectivas propiedades y ejecutar el mtodo agregar para que nos inserte
el cliente. El cdigo seria el siguiente:
private void btnGuardar_Click(object sender, EventArgs e)
{
Cliente pCliente = new Cliente();
pCliente.Nombre = txtNombre.Text.Trim();
pCliente.Apellido = txtApellido.Text.Trim();
pCliente.Fecha_Nac = dtpFechaNacimiento.Value.Year + "/" +
dtpFechaNacimiento.Value.Month + "/" + dtpFechaNacimiento.Value.Day;
pCliente.Direccion = txtDireccion.Text.Trim();
int resultado = ClientesDAL.Agregar(pCliente);
if (resultado > 0)
{
MessageBox.Show("Cliente Guardado Con Exito!!", "Guardado",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No se pudo guardar el cliente", "Fallo!!",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}

Insertar, Modificar, Eliminar y


Consultar registros en MySQL desde C#
- Parte 2
Hola colegas, ahora vamos a continuar con la segunda parte de los tutoriales
sobre C# y MySQL, en los que estamos aprendiendo a insertar, modificar,
eliminar y consultar registros desde C# en una tabla de MySql (Clientes), en la
parte anterior aprendimos a insertar registros en la tabla clientes lo puedes ver
ac. En esta parte vamos aprender a consultar registros, por lo cual
realizaremos una bsqueda de un cliente especifico por su nombre y apellido,
para poder mostrarlo en un DataGridView, bsicamente seria una pequea
consulta hacia la tabla Clientes, Por lo tanto lo que debemos realizar seria lo
siguiente:

1. Agregar un nuevo formulario al cual le llamaremos BuscarClientes, el


cual debe contener dos label (Nombre, Apellido), dos textbox para el
nombre y el apellido respectivamente, un DataGridview y 3 botones el
diseo te debera quedar como lo muestro en la siguiente imagen:

2.

Crear un mtodo en la clase ClientesDAL al cual le nombraremos


Buscar y tendr el siguiente cdigo:

public static List<Cliente> Buscar(string pNombre, string pApellido)


{
List<Cliente> _lista = new List<Cliente>();
MySqlCommand _comando = new MySqlCommand(String.Format(
"SELECT IdCliente, Nombre, Apellido, Fecha_Nacimiento, Direccion
FROM clientes where Nombre ='{0}' or Apellido='{1}'",
pNombre,pApellido), BdComun.ObtnerCOnexion());
MySqlDataReader _reader = _comando.ExecuteReader();
while (_reader.Read())
{
Cliente pCliente = new Cliente();
pCliente.Id = _reader.GetInt32(0);
pCliente.Nombre = _reader.GetString(1);
pCliente.Apellido = _reader.GetString(2);
pCliente.Fecha_Nac = _reader.GetString(3);
pCliente.Direccion = _reader.GetString(4);
_lista.Add(pCliente);
}
}

return _lista;

3. Ya teniendo el mtodo Buscar creado, agregamos otro mtodo mas,


el cual lo he nombrado ObtenerCliente, y tiene el siguiente cdigo:
public static Cliente ObtenerCliente(int pId)
{
Cliente pCliente = new Cliente();
MySqlConnection conexion = BdComun.ObtnerCOnexion();

MySqlCommand _comando = new


MySqlCommand(String.Format("SELECT IdCliente, Nombre, Apellido,
Fecha_Nacimiento, Direccion FROM clientes where IdCliente={0}", pId),
conexion);
MySqlDataReader _reader = _comando.ExecuteReader();
while (_reader.Read())
{
pCliente.Id = _reader.GetInt32(0);
pCliente.Nombre = _reader.GetString(1);
pCliente.Apellido = _reader.GetString(2);
pCliente.Fecha_Nac = _reader.GetString(3);
pCliente.Direccion = _reader.GetString(4);
}
conexion.Close();
return pCliente;
}
4. Ahora lo que hacemos es abrir el formulario BuscarCliente cuando se
haga clic en el botn Buscar del formCliente (ver vdeo).

5. En el formulario BuscarCliente en su botn Buscar


invocamos el mtodo Buscar, para cargar los datos en
el
datagridview
el cdigo quedara asi:
private

void

btnBuscar_Click(object

sender,

EventArgs

e)
{
dgvBuscar.DataSource = ClientesDAL.Buscar(txtNombre.Text, txtApellido.Text);
}

6. Ahora en el botn Aceptar capturamos el Id del cliente seleccionado e


invocamos el mtodo ObtenerCliente enviando como parmetro el Id que
selecciono el usuario en el datagridview, el cdigo es el siguiente:

private void btnAceptar_Click(object sender, EventArgs e)


{
if (dgvBuscar.SelectedRows.Count == 1)
{
int id = Convert.ToInt32(dgvBuscar.CurrentRow.Cells[0].Value);
ClienteSelecionado = ClientesDAL.ObtenerCliente(id);
this.Close();
}
else

MessageBox.Show("debe de seleccionar una fila");


}

prcticamente esto sera todo, ahora puedes ver el vdeo para aclara todas las
dudas o errores
v=xXxXse4W77Y

que

han

surgido:

http://www.youtube.com/watch?

Insertar, modificar, eliminar y consultar


registros en MySQL desde C# - Parte 3

Hola amigos/as bienvenidos a la parte tres sobre los tutoriales de insertar,


eliminar, modificar y consultar datos desde C# y MySQL, ya aprendimos a
insertar y consultar, para los que han estado siguiendo los anteriores vdeos
se dieron cuenta que luego de mostrar los datos del cliente en el datagridview
seleccionbamos un cliente y pasbamos los datos al formulario clientes,
entonces ya teniendo los datos del cliente en el formulario de
registro podremos cambiar por ejemplo el nombre y al darle en
el botn actualizar nos debe actualizar los datos que hemos cambiado, para
esto lo primero que haremos sera agregar un nuevo mtodo en la clase
ClientesDAL que si recuerdas es la clase que utilizamos para interactuar con
la BD, al mtodo le nombraremos Actualizar y tendr el siguiente cdigo:
public static int Actualizar(Cliente pCliente)
{
int retorno = 0;
MySqlConnection conexion = BdComun.ObtenerConexion();

MySqlCommand comando = new


MySqlCommand(string.Format("Update clientes set Nombre='{0}',
Apellido='{1}', Fecha_Nacimiento='{2}', Direccion='{3}' where IdCliente={4}",
pCliente.Nombre, pCliente.Apellido, pCliente.Fecha_Nac,
pCliente.Direccion, pCliente.Id), conexion);
retorno = comando.ExecuteNonQuery();
conexion.Close();
return retorno;
}
Lo siguiente que hacemos es agregar un propiedad nombrada clienteActual
en la parte superior de la programacin del formulario Clientes (Ver Vdeo).
Y luego en la programacin del botn Buscar aadimos la siguiente linea
de cdigo que vez en la imagen:

Al asignarle a clienteActual lo que tiene buscar.ClienteSeleccionado,


la propiedad clienteActual tendr todos los datos del cliente seleccionado por
el usuario en el datagridview, incluyendo el Id que necesitamos para actualizar.
Por Ultimo programamos
siguiente cdigo:

el botn Actualizar

el

cual

contiene

Cliente pCliente = new Cliente();


pCliente.Nombre = txtNombre.Text.Trim();
pCliente.Apellido = txtApellido.Text.Trim();
pCliente.Fecha_Nac = dtpFechaNacimiento.Value.Year + "/" +
dtpFechaNacimiento.Value.Month + "/" + dtpFechaNacimiento.Value.Day;
pCliente.Direccion = txtDireccion.Text.Trim();
pCliente.Id = ClienteActual.Id;

el

if (ClietesDAL.Actualizar(pCliente) > 0)
{
MessageBox.Show("Los datos del cliente se actualizaron", "Datos
Actualizados", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No se pudo actualizar", "Error al Actualizar",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
Finalmente te dejo el vdeo donde te explico y compruebo la actualizacin de
datos, no te olvides dejar tu comentario si te ayudado con el tutorial:
https://youtu.be/vPXZ4dIu9vM

Espero que haya sido te tu agrado el artculo, y continua con la parte 4

Insertar, Modificar, Eliminar y


Consultar registros en MySQL desde C#
Parte 4
Hola amigos/as ahora vamos a continuar con los tutoriales de C# y MySql
estamos en la parte 4 y lo correspondiente en esta ocasin es la parte de
Eliminar registros de nuestra base de datos desde el formulario en C#, ya
aprendimos a insertar, modificar, consultar (puedes ver ac) y este seria el
momento para aprender a eliminar registros (un cliente), les adelanto que aun
nos restara una ultima parte en la cual vamos crear mtodos para limpiar las
cajas de textos y habilita y deshabilitar los botones dependiendo de la funcin
que se este realizando. Bien entonces vamos a dar inicio .
Lo primero que haremos sera agregar a la clase ClienteDAL el mtodo para
ejecutar una eliminacin, a dicho mtodo le llamaremos Eliminar, y tendr el
siguiente cdigo:
public static int Eliminar(int pId)
{
int retorno = 0;
MySqlConnection conexion = BdComun.ObtenerConexion();
MySqlCommand comando = new MySqlCommand(string.Format("Delete
From clientes where IdCliente={0}", pId), conexion);
retorno = comando.ExecuteNonQuery();

conexion.Close();
return retorno;
}
Consiste en mandar una instruccin Sql para que elimine un cliente mientras el
IdCliente se igual al que especifiquemos al ejecutar el mtodo, y en la variable
retorno se guardara un 0 si no se afecto ninguna fila o un 1 si pudo eliminar el
cliente

Bien ya teniendo el mtodo creado procederemos a


programa en el botn eliminar de nuestro
formulario, le agregaremos el siguiente cdigo:
if (MessageBox.Show("Esta Seguro que desea eliminar el Cliente Actual",
"Estas Seguro??", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
DialogResult.Yes)
{
if (ClienteDAL.Eliminar(clienteActual.Id) > 0)
{
MessageBox.Show("Cliente Eliminado Correctamente!", "Cliente
Eliminado", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No se pudo eliminar el Cliente", "Cliente No
Eliminado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
else
MessageBox.Show("Se cancelo la eliminacion", "Eliminacion
Cancelada", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

Lo que hace dicho cdigo es mostrar un mensaje preguntando si esta seguro


de eliminar, en el caso que el cliente presione el botn si, entonces se ejecutara
el mtodo para eliminar el cliente actual.
Pero para reforzar lo anterior ac te dejo el vdeo correspondiente al articulo:
Espero te haya sido de utilidad mi post y tutorial deja tu comentario y dale like a
los vdeos de mi canal en youtube.

Establecer Llaves Primarias


y Forneas a un tabla en Sql Sever
Hola amigos, ahora aprenderemos sobre un tema muy importante en Sql Server,
el cual es sobre las llaves primarias ( en ingles Primary key) y llaves forneas
(Foreign key), les explicare como establecerle llaves primaria y forneas a
nuestras tablas en Sql Server..
Antes de todo es importante conocer los conceptos bsicos de ambos
conceptos:

La clusula PRIMARY KEY se utiliza para definir la clave principal de la tabla.


Las columnas que forman la clave principal no pueden contener valores nulos ni
pueden haber valores duplicados de la combinacin de columnas.
La clusula FOREIGN KEY sirve para definir una clave fornea sobre una
columna o una combinacin de columnas. Una clave fornea es una columna o
conjunto de columnas que contiene un valor que hace referencia a una fila de
otra
tabla.

Creacin de las tablas:

Relacionar Tablas ya creadas:

Finalmente les dejo el Tutorial prctico:


https://youtu.be/5hQuxKAF7fQ

You might also like