none
SUMAR CANTIDAD DE PRODUCTOS CON EL MISMO NOMBRE DE PRODUCTO EN UNA CELDA DE DATAGRIDVIEW RRS feed

  • Pregunta

  • Hola a todos!

    Necesito que al agregar un producto que ya se encuentra en el gridview se sume la cantidad a la fila que ya esta y que no se agregue otra fila pero no se como hacer eso. Es sin base de datos.

    Ayuda por favor!

    CODIGO

    public partial class Form1 : Form
        {

            int codigo = 1;
            int pos;
            double total = 0;
            double subtotal = 0;
            double suma = 0;
           
            public Form1()
            {
                InitializeComponent();
            }
            private void btnGuardar_Click(object sender, EventArgs e)
            {
                string cantidad, precio, producto;

                cantidad = txtCant.Text;
                precio = txtPrecio.Text;
                producto = txtProducto.Text;

                subtotal = Convert.ToInt32(precio) * Convert.ToInt32(cantidad);
                total = total + subtotal;
                GridVenta.Rows.Add(codigo + " ", producto, precio, cantidad, subtotal);
                codigo = codigo + 1;

                foreach (DataGridViewRow row in GridVenta.Rows)
                {

                    if (producto.Equals(row.Cells[1].Value))

                    {
                        MessageBox.Show("El producto " + Convert.ToString(row.Cells[1].Value) + " ya existe ");

               
                     //  Aqui debe ir el metodo para sumar las cantidadfes ;

                    }
                }
     

                txtTotal.Text = Convert.ToString(total);
                txtCant.Text = "";
                txtPrecio.Text = "";
                txtProducto.Text = "";

            }

    miércoles, 30 de octubre de 2019 18:56

Respuestas

  • hola

    La validacion va antes de hacer el Rows.Add() sino ya lo agregaste para que lo validas

    private void btnGuardar_Click(object sender, EventArgs e)
    {
    	string cantidad = txtCant.Text;
    	string precio = txtPrecio.Text;
    	string producto = txtProducto.Text;
    
    	int subtotal = Convert.ToInt32(precio) * Convert.ToInt32(cantidad);
    	total = total + subtotal;
    	
    	codigo++;
    
    	DataGridViewRow rowExists = null;
    	foreach (DataGridViewRow row in GridVenta.Rows)
    	{
    	     if (producto.Equals(row.Cells[1].Value))
    	     {
    		rowExists = row;
    		break;
    	     }
    	}
    	
    	if(rowExists == null) //si encontro una row con el mismo producto entonces no estara en null
    	{
    	    GridVenta.Rows.Add(codigo.ToString(), producto, precio, cantidad, subtotal);
    	} 
    	else 
    	{
    	    rowExists.Cells[3].Value = Convert.ToInt32(rowExists.Cells[3].Value) + Convert.ToInt32(cantidad); //cantidad
    	    rowExists.Cells[4].Value = Convert.ToInt32(rowExists.Cells[4].Value) + subtotal; //subtotal
    	}
    
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 19:49
    • Marcado como respuesta Jhon.97 miércoles, 30 de octubre de 2019 20:00
    miércoles, 30 de octubre de 2019 19:25

Todas las respuestas

  • hola

    La validacion va antes de hacer el Rows.Add() sino ya lo agregaste para que lo validas

    private void btnGuardar_Click(object sender, EventArgs e)
    {
    	string cantidad = txtCant.Text;
    	string precio = txtPrecio.Text;
    	string producto = txtProducto.Text;
    
    	int subtotal = Convert.ToInt32(precio) * Convert.ToInt32(cantidad);
    	total = total + subtotal;
    	
    	codigo++;
    
    	DataGridViewRow rowExists = null;
    	foreach (DataGridViewRow row in GridVenta.Rows)
    	{
    	     if (producto.Equals(row.Cells[1].Value))
    	     {
    		rowExists = row;
    		break;
    	     }
    	}
    	
    	if(rowExists == null) //si encontro una row con el mismo producto entonces no estara en null
    	{
    	    GridVenta.Rows.Add(codigo.ToString(), producto, precio, cantidad, subtotal);
    	} 
    	else 
    	{
    	    rowExists.Cells[3].Value = Convert.ToInt32(rowExists.Cells[3].Value) + Convert.ToInt32(cantidad); //cantidad
    	    rowExists.Cells[4].Value = Convert.ToInt32(rowExists.Cells[4].Value) + subtotal; //subtotal
    	}
    
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 19:49
    • Marcado como respuesta Jhon.97 miércoles, 30 de octubre de 2019 20:00
    miércoles, 30 de octubre de 2019 19:25
  • Muchas gracias, soy nuevo en esto de programación.

    miércoles, 30 de octubre de 2019 19:58