Actualizar Producto

Agregamos otro Windows Form y lo nombramos ActualizarProducto.cs y al formulario lo nombremos frmActualizarProducto.
Nos vamos al formulario AgregarProducto y en el menú hacemos doble clic donde dice Actualizar Producto y escribimos lo siguiente:
             private void ActualizarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmActualizarProducto actualizarProducto = new frmActualizarProducto();
            actualizarProducto.Show();
        }
           
           

Nos vamos otra vez al formulario AgregarProducto y el menú opciones selecionamos la opción Menú y escribimos lo siguiente:
          private void MenúToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmMenu menu = new frmMenu();
            menu.Show();
        }
         
         

El archivo AgregarProducto.cs queda terminado de la siguiente forma:
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmAgregarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmAgregarProducto()
        {
            InitializeComponent();
        }

        private void BtnGuardarProducto_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string insertarQuery = "INSERT INTO producto (idProducto,codigoBarras,nombre,precio) VALUES(null,?codigoBarras,?nombre,?precio)";
                MySqlCommand cmd = new MySqlCommand(insertarQuery, conexion);
                cmd.Parameters.Add("?codigoBarras", MySqlDbType.VarChar, 60).Value = txtCodigoBarras.Text;
                cmd.Parameters.Add("?nombre", MySqlDbType.VarChar, 60).Value = txtNombreProducto.Text;
                cmd.Parameters.Add("?precio", MySqlDbType.Decimal, 60).Value = txtPrecio.Text;
                cmd.ExecuteNonQuery();
                MessageBox.Show("Registro Exitoso");
                txtCodigoBarras.Text = " ";
                txtNombreProducto.Text = " ";
                txtPrecio.Text = " ";
                conexion.Close();
            }
            catch
            {

                MessageBox.Show("Inserción fallida");
            }

        }

        private void BuscarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmVerProducto verProducto = new frmVerProducto();
            verProducto.Show();
        }

        private void EliminarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmEliminarProducto eliminarProdcuto = new frmEliminarProducto();
            eliminarProdcuto.Show();
        }

        private void ActualizarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmActualizarProducto actualizarProducto = new frmActualizarProducto();
            actualizarProducto.Show();
        }

        private void MenúToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmMenu menu = new frmMenu();
            menu.Show();
        }
    }
}
         

A continuación nos vamos a formulario EliminarProducto.csNis vamos nuestro menú opciones y hacemos doble click en Actualizar Producto y escribimos lo siguiente.
       private void ActualizarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmActualizarProducto ac = new frmActualizarProducto();
            ac.Show();
        }   
          
          
      

Nuestro archivo EliminarProducto.cs quedo de la siguiente forma:
    using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmEliminarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmEliminarProducto()
        {
            InitializeComponent();
        }

        private void Label2_Click(object sender, EventArgs e)
        {

        }

        private void BtnBuscarProducto_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string selectQuery = "SELECT * FROM producto WHERE nombre LIKE '%" + txtNombreProducto.Text + "%' ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosProducto = new DataTable();
                selecionnar.Fill(datosProducto);
                dtgvProductos.DataSource = datosProducto;
                conexion.Close();


                btnEliminarProducto.Enabled = true;



            }
            catch
            {
                MessageBox.Show("Error al conectar");
            }

        }

        private void FrmEliminarProducto_Load(object sender, EventArgs e)
        {
            btnEliminarProducto.Enabled = false;
        }

        private void BtnEliminarProducto_Click(object sender, EventArgs e)
        {
            if (dtgvProductos.CurrentRow == null)
            {
                MessageBox.Show("Selecionar fila");
                return;
            }
            int idProducto = Convert.ToInt32(dtgvProductos.CurrentRow.Cells["idProducto"].Value);
            try
            {
                conexion.Open();
                string eliminarQuery = "DELETE FROM producto WHERE idProducto = @idProducto ";
                MySqlCommand cmd = new MySqlCommand(eliminarQuery, conexion);
                cmd.Parameters.AddWithValue("@idProducto", idProducto);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Eliminación Exitosa");
                dtgvProductos.Rows.Remove(dtgvProductos.CurrentRow);
                conexion.Close();
            }
            catch
            {

                MessageBox.Show("Eliminación fallida");
            }

        }

        private void AgregarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmAgregarProducto agregarProducto = new frmAgregarProducto();
            agregarProducto.Show();
        }

        private void MenuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmMenu menu = new frmMenu();
            menu.Show();

        }

        private void ActualizarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmActualizarProducto ac = new frmActualizarProducto();
            ac.Show();
        }
    }
}  
      
      
      
      

Ahora nos vamos al formulario ActualizarProducto.csNos vamos al cuadro de herramienta y selecionamos un MenuStrip y lo nombramos Opciones y le agregamos: punto de venta
Ahora agregamos un Label y en text escribimos Actualizar Producto
punto de venta
Adicionamos otro Label y en el texto escribimos Nombre del producto:
punto de venta
Añadimos un TextBox y lo nombramos txtProducto
punto de venta
Incluimos un Button en texto ponemos Buscar Producto y lo nombramos btnBuscar
punto de venta
Copiamos y pegamos en Button anterior, en texto ponemos Actualizar Producto y lo nombramos btnActualizarProducto
punto de venta
En el cuadro de herramientas seleccionamos un DataGridView en la flecha que aparece en la parte superior aparece unas opciones dejamos habilitada la opción Habilitar edición y lo nombramos dtgvProductos
punto de venta
Una vez ya diseñado nuestro formulario Hacemos doble click en Buscar Producto y escribimos el siguiente código.
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmActualizarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmActualizarProducto()
        {
            InitializeComponent();
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string selectQuery = "SELECT * FROM producto WHERE nombre LIKE '%" + txtProducto.Text + "%' ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosProducto = new DataTable();
                selecionnar.Fill(datosProducto);
                dtgvProductos.DataSource = datosProducto;
                conexion.Close();


                btnActualizarProducto.Enabled = true;



            }
            catch
            {
                MessageBox.Show("Error al conectar");
            }
        }
    }
}

      

      
      
      

Hacemos doble clic en el Button Actualizar Producto y escribimos lo siguiente:
      using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmActualizarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmActualizarProducto()
        {
            InitializeComponent();
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string selectQuery = "SELECT * FROM producto WHERE nombre LIKE '%" + txtProducto.Text + "%' ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosProducto = new DataTable();
                selecionnar.Fill(datosProducto);
                dtgvProductos.DataSource = datosProducto;
                conexion.Close();


                btnActualizarProducto.Enabled = true;



            }
            catch
            {
                MessageBox.Show("Error al conectar");
            }
        }
      
        private void BtnActualizarProducto_Click(object sender, EventArgs e)
        {
            if (dtgvProductos.CurrentRow == null)
            {
                MessageBox.Show("Selecionar fila");
                return;
            }
            int idProducto = Convert.ToInt32(dtgvProductos.CurrentRow.Cells["idProducto"].Value);
            string codigoBarras = Convert.ToString(dtgvProductos.CurrentRow.Cells["codigoBarras"].Value);
            string nombre = Convert.ToString(dtgvProductos.CurrentRow.Cells["nombre"].Value);
            double precio = Convert.ToDouble(dtgvProductos.CurrentRow.Cells["precio"].Value);

            try
            {
                conexion.Open();
                string actualizarQuery = "UPDATE  producto SET  codigoBarras = @codigoBarras, nombre = @nombre , precio = @precio   " +
                    "WHERE idProducto = @idProducto ";
                MySqlCommand cmd = new MySqlCommand(actualizarQuery, conexion);
                cmd.Parameters.AddWithValue("@idProducto", idProducto);
                cmd.Parameters.AddWithValue("@codigoBarras", codigoBarras);
                cmd.Parameters.AddWithValue("@nombre", nombre);
                cmd.Parameters.AddWithValue("@precio", precio);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Actualización Exitosa");
                dtgvProductos.Update();
                conexion.Close();
            }
            catch
            {

                MessageBox.Show("Actualización fallida");
            }

        }
        
    }
}
      
      
      

Ahora nos vamos al menú opciones y hacemos doble click en la opcion Agregar Producto
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmActualizarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmActualizarProducto()
        {
            InitializeComponent();
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string selectQuery = "SELECT * FROM producto WHERE nombre LIKE '%" + txtProducto.Text + "%' ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosProducto = new DataTable();
                selecionnar.Fill(datosProducto);
                dtgvProductos.DataSource = datosProducto;
                conexion.Close();


                btnActualizarProducto.Enabled = true;



            }
            catch
            {
                MessageBox.Show("Error al conectar");
            }
        }

        private void BtnActualizarProducto_Click(object sender, EventArgs e)
        {
            if (dtgvProductos.CurrentRow == null)
            {
                MessageBox.Show("Selecionar fila");
                return;
            }
            int idProducto = Convert.ToInt32(dtgvProductos.CurrentRow.Cells["idProducto"].Value);
            string codigoBarras = Convert.ToString(dtgvProductos.CurrentRow.Cells["codigoBarras"].Value);
            string nombre = Convert.ToString(dtgvProductos.CurrentRow.Cells["nombre"].Value);
            double precio = Convert.ToDouble(dtgvProductos.CurrentRow.Cells["precio"].Value);

            try
            {
                conexion.Open();
                string actualizarQuery = "UPDATE  producto SET  codigoBarras = @codigoBarras, nombre = @nombre , precio = @precio   " +
                    "WHERE idProducto = @idProducto ";
                MySqlCommand cmd = new MySqlCommand(actualizarQuery, conexion);
                cmd.Parameters.AddWithValue("@idProducto", idProducto);
                cmd.Parameters.AddWithValue("@codigoBarras", codigoBarras);
                cmd.Parameters.AddWithValue("@nombre", nombre);
                cmd.Parameters.AddWithValue("@precio", precio);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Actualización Exitosa");
                dtgvProductos.Update();
                conexion.Close();
            }
            catch
            {

                MessageBox.Show("Actualización fallida");
            }

        }
      
        private void AgregarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmAgregarProducto ap = new frmAgregarProducto();
            ap.Show();
        }
        
    }
}
             
             
             
             
      

Seleccionamos del menú opciones la opción Eliminar Producto
  
   using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmActualizarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmActualizarProducto()
        {
            InitializeComponent();
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string selectQuery = "SELECT * FROM producto WHERE nombre LIKE '%" + txtProducto.Text + "%' ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosProducto = new DataTable();
                selecionnar.Fill(datosProducto);
                dtgvProductos.DataSource = datosProducto;
                conexion.Close();


                btnActualizarProducto.Enabled = true;



            }
            catch
            {
                MessageBox.Show("Error al conectar");
            }
        }

        private void BtnActualizarProducto_Click(object sender, EventArgs e)
        {
            if (dtgvProductos.CurrentRow == null)
            {
                MessageBox.Show("Selecionar fila");
                return;
            }
            int idProducto = Convert.ToInt32(dtgvProductos.CurrentRow.Cells["idProducto"].Value);
            string codigoBarras = Convert.ToString(dtgvProductos.CurrentRow.Cells["codigoBarras"].Value);
            string nombre = Convert.ToString(dtgvProductos.CurrentRow.Cells["nombre"].Value);
            double precio = Convert.ToDouble(dtgvProductos.CurrentRow.Cells["precio"].Value);

            try
            {
                conexion.Open();
                string actualizarQuery = "UPDATE  producto SET  codigoBarras = @codigoBarras, nombre = @nombre , precio = @precio   " +
                    "WHERE idProducto = @idProducto ";
                MySqlCommand cmd = new MySqlCommand(actualizarQuery, conexion);
                cmd.Parameters.AddWithValue("@idProducto", idProducto);
                cmd.Parameters.AddWithValue("@codigoBarras", codigoBarras);
                cmd.Parameters.AddWithValue("@nombre", nombre);
                cmd.Parameters.AddWithValue("@precio", precio);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Actualización Exitosa");
                dtgvProductos.Update();
                conexion.Close();
            }
            catch
            {

                MessageBox.Show("Actualización fallida");
            }

        }

        private void AgregarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmAgregarProducto ap = new frmAgregarProducto();
            ap.Show();
        }
        
        private void EliminarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmEliminarProducto ep = new frmEliminarProducto();
            ep.Show();
        }
        
    }
}
      
      
      

Por último seleccionamos del menú opciones la opción de Menú
 
             
         using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GatoAbarrotero
{
    public partial class frmActualizarProducto : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmActualizarProducto()
        {
            InitializeComponent();
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();
                string selectQuery = "SELECT * FROM producto WHERE nombre LIKE '%" + txtProducto.Text + "%' ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosProducto = new DataTable();
                selecionnar.Fill(datosProducto);
                dtgvProductos.DataSource = datosProducto;
                conexion.Close();


                btnActualizarProducto.Enabled = true;



            }
            catch
            {
                MessageBox.Show("Error al conectar");
            }
        }

        private void BtnActualizarProducto_Click(object sender, EventArgs e)
        {
            if (dtgvProductos.CurrentRow == null)
            {
                MessageBox.Show("Selecionar fila");
                return;
            }
            int idProducto = Convert.ToInt32(dtgvProductos.CurrentRow.Cells["idProducto"].Value);
            string codigoBarras = Convert.ToString(dtgvProductos.CurrentRow.Cells["codigoBarras"].Value);
            string nombre = Convert.ToString(dtgvProductos.CurrentRow.Cells["nombre"].Value);
            double precio = Convert.ToDouble(dtgvProductos.CurrentRow.Cells["precio"].Value);

            try
            {
                conexion.Open();
                string actualizarQuery = "UPDATE  producto SET  codigoBarras = @codigoBarras, nombre = @nombre , precio = @precio   " +
                    "WHERE idProducto = @idProducto ";
                MySqlCommand cmd = new MySqlCommand(actualizarQuery, conexion);
                cmd.Parameters.AddWithValue("@idProducto", idProducto);
                cmd.Parameters.AddWithValue("@codigoBarras", codigoBarras);
                cmd.Parameters.AddWithValue("@nombre", nombre);
                cmd.Parameters.AddWithValue("@precio", precio);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Actualización Exitosa");
                dtgvProductos.Update();
                conexion.Close();
            }
            catch
            {

                MessageBox.Show("Actualización fallida");
            }

        }

        private void AgregarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmAgregarProducto ap = new frmAgregarProducto();
            ap.Show();
        }

        private void EliminarProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmEliminarProducto ep = new frmEliminarProducto();
            ep.Show();
        }
     
        private void MenúToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmMenu menu = new frmMenu();
            menu.Show();
        }
      
    }
}
         
             
             
              
         

Probamos el ejemplo
punto de venta
Buscamos el un producto en este caso seria coca y presionamos Buscar Producto
punto de venta
Selecionamos la columna que dice precio y hacemos click y cambiamos el precio a 14 Presionamos Actualizar Producto punto de venta
Le damos Aceptar y hasta aqui termina la parte de Productos.

Conclusión

Como se ve la parte de productos es practicamente un CRUD con mysql y c# Yo también soy nuevo en c# y me gusto mucho la herramienta de desarrollo ya que es muy intuitiva si tienes practica en algún lenguaje orientado a objetos y has trabajado con eventos puedes realizar proyectos interesantes.