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:
- Agregar Producto
- Eliminar Producto
- Menú

Ahora agregamos un Label y en text escribimos Actualizar Producto

Adicionamos otro Label y en el texto escribimos Nombre del producto:

Añadimos un TextBox y lo nombramos txtProducto

Incluimos un Button en texto ponemos Buscar Producto y lo nombramos btnBuscar

Copiamos y pegamos en Button anterior, en texto ponemos Actualizar Producto y lo nombramos btnActualizarProducto

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

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

Buscamos el un producto en este caso seria coca y presionamos Buscar Producto

Selecionamos la columna que dice precio y hacemos click y cambiamos el precio a 14 Presionamos Actualizar Producto

Le damos Aceptar y hasta aqui termina la parte de Productos.