CRUD básico en C# Windows Forms para gestionar artículos

Respondido usando ChatGPT 4o por ChatGPT4o

Pregunta:

actua como un experto en c# windows forms, quiero q me hagas un crud desde 0 sobre articulos (codigo, descripcion, marca, precio, stock) quiero en lo posible que sea td en datagridview, por el momento no quiero conbas de datos, exlicame el codigo paso a paso q sea funcionale y q yo al ejecutar el crud funcione correctamente

Respuesta:

¡Claro! Vamos a crear un CRUD básico en C# utilizando Windows Forms para gestionar artículos con los campos que mencionaste: código, descripción, marca, precio y stock. Este ejemplo no utilizará una base de datos, sino que almacenará los datos en una lista en memoria.

Paso 1: Crear un nuevo proyecto de Windows Forms

  1. Abre Visual Studio.
  2. Crea un nuevo proyecto y selecciona "Aplicación de Windows Forms (.NET Framework)".
  3. Nombra tu proyecto, por ejemplo, CRUDArticulos.

Paso 2: Diseñar la interfaz

  1. Abre el formulario principal (Form1).

  2. Agrega los siguientes controles desde el cuadro de herramientas:

    • TextBox para cada uno de los campos: Código, Descripción, Marca, Precio, Stock.
    • Button para las operaciones: Agregar, Editar, Eliminar, Limpiar.
    • DataGridView para mostrar la lista de artículos.
  3. Organiza los controles en el formulario. Por ejemplo:

    • TextBox para Código (txtCodigo)
    • TextBox para Descripción (txtDescripcion)
    • TextBox para Marca (txtMarca)
    • TextBox para Precio (txtPrecio)
    • TextBox para Stock (txtStock)
    • DataGridView (dgvArticulos)
    • Botones: btnAgregar, btnEditar, btnEliminar, btnLimpiar

Paso 3: Crear la clase Artículo

Agrega una nueva clase llamada Articulo.cs en tu proyecto:

public class Articulo
{
    public string Codigo { get; set; }
    public string Descripcion { get; set; }
    public string Marca { get; set; }
    public decimal Precio { get; set; }
    public int Stock { get; set; }
}

Paso 4: Implementar la lógica del CRUD en Form1.cs

Ahora, vamos a implementar la lógica del CRUD en el formulario. Primero, declara una lista para almacenar los artículos y un método para actualizar el DataGridView.

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace CRUDArticulos
{
    public partial class Form1 : Form
    {
        private List<Articulo> articulos = new List<Articulo>();

        public Form1()
        {
            InitializeComponent();
            ActualizarDataGridView();
        }

        private void ActualizarDataGridView()
        {
            dgvArticulos.DataSource = null;
            dgvArticulos.DataSource = articulos;
        }
    }
}

Paso 5: Implementar las operaciones CRUD

Ahora, implementaremos las operaciones de agregar, editar, eliminar y limpiar.

Agregar Artículo

private void btnAgregar_Click(object sender, EventArgs e)
{
    var articulo = new Articulo
    {
        Codigo = txtCodigo.Text,
        Descripcion = txtDescripcion.Text,
        Marca = txtMarca.Text,
        Precio = decimal.Parse(txtPrecio.Text),
        Stock = int.Parse(txtStock.Text)
    };

    articulos.Add(articulo);
    ActualizarDataGridView();
    LimpiarCampos();
}

Editar Artículo

private void btnEditar_Click(object sender, EventArgs e)
{
    if (dgvArticulos.SelectedRows.Count > 0)
    {
        var selectedRow = dgvArticulos.SelectedRows[0];
        var articulo = articulos[selectedRow.Index];

        articulo.Codigo = txtCodigo.Text;
        articulo.Descripcion = txtDescripcion.Text;
        articulo.Marca = txtMarca.Text;
        articulo.Precio = decimal.Parse(txtPrecio.Text);
        articulo.Stock = int.Parse(txtStock.Text);

        ActualizarDataGridView();
        LimpiarCampos();
    }
}

Eliminar Artículo

private void btnEliminar_Click(object sender, EventArgs e)
{
    if (dgvArticulos.SelectedRows.Count > 0)
    {
        var selectedRow = dgvArticulos.SelectedRows[0];
        articulos.RemoveAt(selectedRow.Index);
        ActualizarDataGridView();
        LimpiarCampos();
    }
}

Limpiar Campos

private void LimpiarCampos()
{
    txtCodigo.Clear();
    txtDescripcion.Clear();
    txtMarca.Clear();
    txtPrecio.Clear();
    txtStock.Clear();
}

Paso 6: Manejar la selección en el DataGridView

Para que al seleccionar un artículo en el DataGridView se carguen los datos en los TextBox, agrega el siguiente evento:

private void dgvArticulos_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0)
    {
        var selectedRow = dgvArticulos.Rows[e.RowIndex];
        txtCodigo.Text = selectedRow.Cells["Codigo"].Value.ToString();
        txtDescripcion.Text = selectedRow.Cells["Descripcion"].Value.ToString();
        txtMarca.Text = selectedRow.Cells["Marca"].Value.ToString();
        txtPrecio.Text = selectedRow.Cells["Precio"].Value.ToString();
        txtStock.Text = selectedRow.Cells["Stock"].Value.ToString();
    }
}

Paso 7: Conectar eventos de los botones

Asegúrate de conectar los eventos de los botones a sus respectivos métodos en el constructor del formulario:

public Form1()
{
    InitializeComponent();
    ActualizarDataGridView();

    btnAgregar.Click += btnAgregar_Click;
    btnEditar.Click += btnEditar_Click;
    btnEliminar.Click += btnEliminar_Click;
    dgvArticulos.CellClick += dgvArticulos_CellClick;
}

Paso 8: Ejecutar la aplicación

Ahora puedes ejecutar la aplicación. Deberías poder agregar, editar y eliminar artículos, y ver los cambios reflejados en el DataGridView.

Resumen

Hemos creado un CRUD básico en C# Windows Forms para gestionar artículos. La aplicación permite agregar, editar y eliminar artículos, y muestra los datos en un DataGridView. Recuerda que este ejemplo no utiliza una base de datos, por lo que los datos se perderán al cerrar la aplicación. Para un sistema más robusto, considera integrar una base de datos en