CRUD : INSERTAR, ACTUALIZAR, ELIMINAR Y CONSULTAR REGISTROS EN MYSQL DESDE C#
Este seria el código 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 parámetros y podemos invocarlo sin problemas, por otra parte tenemos otro constructor el cual tiene cinco parámetros, podemos interpretar que los parametros nos servirán 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á métodos que nos ejecutaran comandos hacia MySQL tales como un Insert, delete, update, entre otros, por el momento vamos añadir el método agregar el cual insertara un cliente a la BD, la clase quedaría 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 botón, lo que se debe hacer es crear un cliente, es decir llenar sus respectivas propiedades y ejecutar el método agregar para que nos inserte el cliente.
El código seria el siguiente:
El código 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);
}
}
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 diseño te debería quedar como ustedes lo prefieran, de solo poner bienlos nombres de las herramientas.
2. Crear un método en la clase ClientesDAL al cual le nombraremos Buscar y tendrá el siguiente código:
public static ListBuscar(string pNombre, string pApellido) { List _lista = new List (); 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 método Buscar creado, agregamos otro método mas, el cual lo he nombrado ObtenerCliente, y este tendra el siguiente código:
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 botón Buscar del formCliente.
5. En el formulario BuscarCliente en su botón Buscar invocamos el método Buscar, para cargar los datos en el datagridview el código quedaría asi:
private void btnBuscar_Click(object sender, EventArgs e)
{
dgvBuscar.DataSource = ClientesDAL.Buscar(txtNombre.Text, txtApellido.Text);
}
6. Ahora en el botón Aceptar capturamos el Id del cliente seleccionado e invocamos el método ObtenerCliente enviando como parámetro el Id que selecciono el usuario en el datagridview, el código 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");
}
7. Ahora agregaremos un nuevo método en la clase ClientesDAL que si recuerdas es la clase que utilizamos para interactuar con la BD, al metodo le nombraremos Actualizar y tendrá el siguiente código:
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;
}
8. Lo siguiente que hacemos es agregar un propiedad nombrada clienteActual en la parte superior de la programación del formulario Clientes. Y luego en la programación del botón Buscar añadimos la siguiente linea de código que vez en la imagen:
ACTUALIZAR: 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 el botón Actualizar el cual contiene el siguiente código:
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;
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);
}
ELIMINAR : Lo primero que haremos sera agregar a la clase ClienteDAL el método para ejecutar una eliminación, a dicho método le llamaremos Eliminar, y tendrá el siguiente código:
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;
}
ELIMINAR :Consiste en mandar una instrucción Sql para que elimine un cliente mientras el IdCliente se igual al que especifiquemos al ejecutar el método, y en la variable retorno se guardaría un 0 si no se afecto ninguna fila o un 1 si pudo eliminar el cliente. Bien ya teniendo el método creado procederemos a programa en el botón eliminar de nuestro formulario, le agregaremos el siguiente código:
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 código es mostrar un mensaje preguntando si esta seguro de eliminar, en el caso que el cliente presione el botón si, entonces se ejecutara el método para eliminar el cliente actual. el archivo lo subire en drive, en los comentario lo publicare el link. espero que le haya servido en algo saludos.!

No hay comentarios:
Publicar un comentario