private void btnGuardar_Click(object sender, EventArgs e) { try { CategoriaLogica logicaCategoria = new CategoriaLogica(); ProductoLogica logicaProducto = new ProductoLogica(); Producto producto = new Producto(); producto.nombre = txtNombre.Text; producto.marca = txtMarca.Text; string unidad = cmbMedida.SelectedIndex == 0 ? "Kg" : cmbMedida.SelectedIndex == 1 ? "g" : cmbMedida.SelectedIndex == 2 ? "mL" : cmbMedida.SelectedIndex == 3 ? "L" : cmbMedida.SelectedIndex == 4 ? "oz" : "Kg"; int cantidad = 0; int minCantidad = 0; decimal precio = 0m; decimal peso = 0m; if (!int.TryParse(txtMinCantidad.Text, out minCantidad) || !int.TryParse(txtCantidad.Text, out cantidad) || !decimal.TryParse(txtPrecio.Text, out precio) || !decimal.TryParse(txtPeso.Text, out peso)) { lblError.Text = "*Debe ser un valor numérico."; lblError.Visible = true; } producto.peso = peso; producto.unidad = unidad; producto.cantidad = cantidad; producto.minCantidad = minCantidad; producto.precio = precio; producto.categoria = logicaCategoria.SeleccionarPorId(cmbArea.SelectedIndex); Producto p = logicaProducto.SeleccionarPorId(Convert.ToInt32(txtId.Text)); if (p != null) { producto.id = Convert.ToInt32(txtId.Text); logicaProducto.Actualizar(producto); } else { logicaProducto.Crear(producto); } dgvProductos.DataSource = logicaProducto.SeleccionarTodos(); dgvProductos.CurrentRow.Selected = false; MessageTimer.Start(); lblSuccess.Text = "*Guardado con éxito."; lblSuccess.Visible = true; btnLimpiar_Click(this, null); } catch (Exception ex) { lblError.Text = "*" + ex.Message; lblError.Visible = true; MessageTimer.Start(); } }