Saltar al contenido

CRUD con Tablas Relacionadas Parte 2, Editar, Eliminar Datos, C#, SQL, SP, Capas, POO, ComboBox- Nivel Base

Hola, continuemos con la segunda parte de CRUD con Tablas Relacionadas (Proyecto completo), en esta ocasión realizaremos este tutorial con programación orientada a objetos (Modificaremos el tutorial anterior).

Base de datos

Para esta práctica, teníamos la tabla productos, marcas y categorías, como clave primaria id producto.

Capa de acceso a datos

Clase conexión

class ConexionBD
{
    static private string CadenaConexion = "Server=DESKTOP-4FVONF2\\SQLEXPRESS;DataBase=PRACTICA_TABLAS;Integrated Security=true";
    private SqlConnection Conexion= new SqlConnection(CadenaConexion);

    public SqlConnection AbrirConexion()
    {
        if (Conexion.State == ConnectionState.Closed)
            Conexion.Open();
        return Conexion;
    }

    public SqlConnection CerrarConexion()
    {
        if (Conexion.State == ConnectionState.Open)
            Conexion.Close();
        return Conexion;
    }
}

Clase Producto

class ClsProductos
{
    private ConexionBD Conexion = new ConexionBD();
    private SqlCommand Comando = new SqlCommand();
    private SqlDataReader LeerFilas;
    //ATRIBUTOS
    private int idprod;
    private int idCategoria;
    private int idMarca;
    private string descripcion;
    private double precio;       

    //metodos get y set
    public int _Idprod
    {
        get { return idprod; }
        set { idprod = value; }
    }
    public int _IdCategoria
    {
        get { return idCategoria; }
        set { idCategoria = value; }
    }
    public int _IdMarca
    {
        get { return idMarca; }
        set { idMarca = value; }
    }
    public string _Descripcion
    {
        get { return descripcion; }
        set { descripcion = value; }
    }
    public double _Precio
    {
        get { return precio; }
        set { precio = value; }
    }

    //METODOS/FUNCIONES
    public DataTable ListarCategorias()
    {
        DataTable Tabla = new DataTable();
        Comando.Connection = Conexion.AbrirConexion();
        Comando.CommandText = "ListarCategorias";
        Comando.CommandType = CommandType.StoredProcedure;
        LeerFilas = Comando.ExecuteReader();
        Tabla.Load(LeerFilas);
        LeerFilas.Close();
        Conexion.CerrarConexion();
        return Tabla;
    }
    public DataTable ListarMarcas()
    {
        DataTable Tabla = new DataTable();
        Comando.Connection = Conexion.AbrirConexion();
        Comando.CommandText = "ListarMarcas";
        Comando.CommandType = CommandType.StoredProcedure;
        LeerFilas = Comando.ExecuteReader();
        Tabla.Load(LeerFilas);
        LeerFilas.Close();
        Conexion.CerrarConexion();
        return Tabla;
    }
    public DataTable ListarProductos()
    {
        DataTable Tabla = new DataTable();
        Comando.Connection = Conexion.AbrirConexion();
        Comando.CommandText = "ListarProductos";
        Comando.CommandType = CommandType.StoredProcedure;
        LeerFilas = Comando.ExecuteReader();
        Tabla.Load(LeerFilas);
        LeerFilas.Close();
        Conexion.CerrarConexion();
        return Tabla;
    }
    public void InsertarProductos()
    {
        Comando.Connection = Conexion.AbrirConexion();
        Comando.CommandText = "AgregarProducto";
        Comando.CommandType = CommandType.StoredProcedure;
        Comando.Parameters.AddWithValue("@idcategoria", idCategoria);
        Comando.Parameters.AddWithValue("@idmarca", idMarca);
        Comando.Parameters.AddWithValue("@descrip", descripcion);
        Comando.Parameters.AddWithValue("@prec", precio);
        Comando.ExecuteNonQuery();
        Comando.Parameters.Clear();
    }
    public void EditarProductos()
    {
        Comando.Connection = Conexion.AbrirConexion();
        Comando.CommandText = "update PRODUCTOS set IDCATEGORIA="+idCategoria+",IDMARCA="+idMarca+",DESCRIPCION='"+descripcion+"',PRECIO="+precio+" WHERE IDPROD="+idprod;
        Comando.CommandType = CommandType.Text;
        Comando.ExecuteNonQuery();
        Conexion.CerrarConexion();
    }
    public void EliminarProducto() {
        Comando.Connection = Conexion.AbrirConexion();
        Comando.CommandText = "delete PRODUCTOS where IDPROD="+idprod;
        Comando.CommandType = CommandType.Text;
        Comando.ExecuteNonQuery();
        Conexion.CerrarConexion();
    }
}

Capa de presentación

Formulario producto

  • Diseño
  • Código
public partial class PRODUCTOS : Form
{  
    ClsProductos objproducto = new ClsProductos();
    string Operacion = "Insertar";
    string idprod;
       
    private void PRODUCTOS_Load(object sender, EventArgs e){ 
        //CARGAR LISTAS EN COMBOBOXS/ DATAGRIDVIEW
        ListarCategorias();
        ListarMarcas();
        ListarProductos();            
    }
    private void ListarCategorias() {
        ClsProductos objProd = new ClsProductos();
        CmbCategoria.DataSource = objProd.ListarCategorias();
        CmbCategoria.DisplayMember = "CATEGORIA";
        CmbCategoria.ValueMember = "IDCATEG";
    }
    private void ListarMarcas()
    {
        ClsProductos objProd = new ClsProductos();
        CmbMarca.DataSource = objProd.ListarMarcas();
        CmbMarca.DisplayMember = "MARCA";
        CmbMarca.ValueMember = "IDMARCA";
    }
    private void ListarProductos() {
       ClsProductos objprod = new ClsProductos();
        dataGridView1.DataSource = objprod.ListarProductos();
    }

    private void LimpiarFormulario()
    {
        txtDescripcion.Clear();
        txtPrecio.Clear();
    }
    private void btnAgregar_Click(object sender, EventArgs e)
    {
        if (Operacion == "Insertar")
        {
            objproducto._IdCategoria= Convert.ToInt32(CmbCategoria.SelectedValue);
                    objproducto._IdMarca=  Convert.ToInt32(CmbMarca.SelectedValue);
                    objproducto._Descripcion= txtDescripcion.Text;
                    objproducto._Precio= Convert.ToDouble(txtPrecio.Text);
                    objproducto.InsertarProductos();

            MessageBox.Show("Se inserto correctamente");
        }
        else if (Operacion == "Editar") {
            objproducto._IdCategoria = Convert.ToInt32(CmbCategoria.SelectedValue);
            objproducto._IdMarca = Convert.ToInt32(CmbMarca.SelectedValue);
            objproducto._Descripcion = txtDescripcion.Text;
            objproducto._Precio = Convert.ToDouble(txtPrecio.Text);
            objproducto._Idprod = Convert.ToInt32(idprod);

            objproducto.EditarProductos();
            Operacion = "Insertar";
            MessageBox.Show("Se edito correctamente");
        }
        ListarProductos();
        //Limpiar texboxs
        LimpiarFormulario();
    }

    private void btnEditar_Click(object sender, EventArgs e)
    {
        if (dataGridView1.SelectedRows.Count > 0)
        {
            Operacion = "Editar";
            CmbCategoria.Text = dataGridView1.CurrentRow.Cells["CATEGORIA"].Value.ToString();
            CmbMarca.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
            txtDescripcion.Text = dataGridView1.CurrentRow.Cells["DESCRIPCION"].Value.ToString();
            txtPrecio.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
            idprod = dataGridView1.CurrentRow.Cells["ID"].Value.ToString();
        }
        else
            MessageBox.Show("debe seleccionar una fila");
    }

    private void btnEliminar_Click(object sender, EventArgs e)
    {
        if (dataGridView1.SelectedRows.Count > 0)
        {
            objproducto._Idprod = Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value);
            objproducto.EliminarProducto();
            MessageBox.Show("Se elimino satisfactoriamente");
            ListarProductos();
        }
        else
            MessageBox.Show("Seleccione una fila");
    }

Ver video tutorial

Ver Parte 1

Descargas

Los comentarios están cerrados.