jueves, 3 de noviembre de 2016

Práctica 17. Insertar, Modificar, Eliminar y Consultar Datos con C# y MySQL

Práctica 17. Insertar, Modificar, Eliminar y Consultar Datos con C# y MySQL

Objetivo:
Diseñar una aplicación que vincule C# con una base de datos en MySQL.
La aplicación deberá permitir insertar (Altas), modificar (Edición), eliminar (Bajas) y consultar registros en una base de datos de MySQL.



Código:

//BDcomun

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;

namespace practica_17
{
    public class BdComun
    {
        public static MySqlConnection ObtenerConexion()
        {
            MySqlConnection conectar = new MySqlConnection("server=127.0.0.1; database=practica17; uid=root; pwd=;");
            conectar.Open();
            return conectar;
        }
    }
}



//Buscar clientes

using System.Text;
using System.Windows.Forms;

namespace practica_17
{
    public partial class BuscarClientes : Form
    {
        public BuscarClientes()
        {
            InitializeComponent();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = ClientesDAL.Buscar(txtNombre.Text, txtApellido.Text);
        }

        public Cliente ClienteSeleccionado { get; set; }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count == 1)
            {
                int id = Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value);
                ClienteSeleccionado = ClientesDAL.ObtenerCliente(id);

                this.Close();
            }
            else
                MessageBox.Show("Debe seleccionar una fila", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}


//clientes
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace practica_17
{
    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;
        }

    }
}


//Clientes DAL

namespace practica_17
{
    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.ObtenerConexion());
            retorno = comando.ExecuteNonQuery();
            return retorno;
        }

        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.ObtenerConexion());
            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;

        }
        public static Cliente ObtenerCliente(int pId)
        {
            Cliente pCliente = new Cliente();
            MySqlConnection conexion = BdComun.ObtenerConexion();

            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;

        }

        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;

        }

        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;

        }


    }
}


//Base

namespace practica_17
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Deshabilitar();
        }
        

        public Cliente ClienteActual { get; set; }

        private void tlsGuardar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtNombre.Text) || string.IsNullOrWhiteSpace(txtApellido.Text) ||
                            string.IsNullOrWhiteSpace(txtDireccion.Text))

                MessageBox.Show("Hay Uno o mas Campos Vacios", "Campos Vacios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else
            {
                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);
                    Limpiar();
                    Deshabilitar();
                }
                else
                {
                    MessageBox.Show("No se pudo guardar el cliente", "Fallo!!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }

        }

        private void tlsBuscar_Click(object sender, EventArgs e)
        {
            BuscarClientes lali = new BuscarClientes();
            lali.ShowDialog();

            if (lali.ClienteSeleccionado != null)
            {
                ClienteActual = lali.ClienteSeleccionado;
                txtNombre.Text = lali.ClienteSeleccionado.Nombre;
                txtApellido.Text = lali.ClienteSeleccionado.Apellido;
                txtDireccion.Text = lali.ClienteSeleccionado.Direccion;
                dtpFechaNacimiento.Text = lali.ClienteSeleccionado.Fecha_Nac;
                tlsActualizar.Enabled = true;
                tlsEliminar.Enabled = true;
                Habilitar();
                tlsGuardar.Enabled = false;
                
            }
        }

        private void tlsActualizar_Click(object sender, EventArgs e)
        {
            Cliente pCliente = new Cliente();
            if (string.IsNullOrWhiteSpace(txtNombre.Text) || string.IsNullOrWhiteSpace(txtApellido.Text) ||
                            string.IsNullOrWhiteSpace(txtDireccion.Text))

                MessageBox.Show("Hay Uno o mas Campos Vacios", "Campos Vacios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else
            {
                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 (ClientesDAL.Actualizar(pCliente) > 0)
                {
                    MessageBox.Show("Los datos del cliente se actualizaron", "Datos Actualizados", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Limpiar();
                    Deshabilitar();
                }
                else
                {
                    MessageBox.Show("No se pudo actualizar", "Error al Actualizar", MessageBoxButtons.OK, MessageBoxIcon.Hand);

                }
            }
        }

        private void tlsEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Esta Seguro que desea eliminar el Cliente Actual", "¿Estas Seguro?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (ClientesDAL.Eliminar(ClienteActual.Id) > 0)
                {
                    MessageBox.Show("¡Cliente Eliminado Correctamente!", "Cliente Eliminado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Limpiar();
                    Deshabilitar();
                }
                else
                {
                    MessageBox.Show("No se pudo eliminar el Cliente", "Cliente No Eliminado", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
            }
            else
                MessageBox.Show("Se cancelo la eliminacion", "Eliminacion Cancelada", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        private void tlsNuevo_Click(object sender, EventArgs e)
        {
            Limpiar();
            Habilitar();
        }

        void Limpiar()
        {
            txtNombre.Clear();
            txtApellido.Clear();
            txtDireccion.Clear();
            dtpFechaNacimiento.ResetText();

        }
        void Deshabilitar()
        {
            txtNombre.Enabled = false;
            txtApellido.Enabled = false;
            txtDireccion.Enabled = false;
            dtpFechaNacimiento.Enabled = false;
            tlsGuardar.Enabled = false;
            tlsEliminar.Enabled = false;
            tlsActualizar.Enabled = false;
            tlsCancelar.Enabled = false;

            tlsNuevo.Enabled = true;
        }
        void Habilitar()
        {
            txtNombre.Enabled = true;
            txtApellido.Enabled = true;
            txtDireccion.Enabled = true;
            dtpFechaNacimiento.Enabled = true;
            tlsGuardar.Enabled = true;
            tlsCancelar.Enabled = true;

        }

        private void tlsCancelar_Click(object sender, EventArgs e)
        {
            Limpiar();
            Deshabilitar();
        }


    }
}


Autor: Eduardo Saavedra Pérez

No hay comentarios:

Publicar un comentario