Tengo la siguiente situación en el proyecto que estoy trabajando, cuando paso los datos de un Jtable a un formulario y deseo modificar los datos, al momento de cambiar la información y por siguiente de presionar el botón EDITAR los datos no se modifican, aquí anexo los fragmentos de código en el primero se muestra la consulta sql para actualizar y el segundo fragmento de código es parte de mi controlador donde le mando las acciones al botón EDITAR, agrego que cuando presiono el botón EDITAR me aparece el mensaje "SURGIO UN ERROR AL ACTUALIZAR":
//Fragmento de codigo de mi paquete Modelo
//Metodo actualizar
@Override
public void actualizar(Object objeto) throws Exception {
ModeloProducto producto = (ModeloProducto) objeto;
try{
// Abrir conexion
this.connect();
String sql = "UPDATE productos SET nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ?, status = ? WHERE idProducto = idProducto;";
this.sqlConsulta = this.conexion.prepareStatement(sql);
this.sqlConsulta.setInt(1, producto.getId());
this.sqlConsulta.setString(2, producto.getNombre());
this.sqlConsulta.setString(3, producto.getCodigo());
this.sqlConsulta.setString(4, producto.getDescripcion());
this.sqlConsulta.setFloat(5, producto.getPrecio());
this.sqlConsulta.setInt(6, producto.getStock());
this.sqlConsulta.setInt(7, 1);
// Executa consulta y Cerrar conexion
this.sqlConsulta.executeUpdate();
}
catch(SQLException e){
System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
}
this.desconectar();
}
//Fragemento de codigo de mi paquete controlador ACCIONES DE LOS BOTONES
if (e.getSource() == this.forminventario.btnEditar) {
try {
producto.setId(Integer.parseInt(forminventario.txtId.getText()));
producto.setCodigo(forminventario.txtCodigo.getText());
producto.setNombre(forminventario.txtNombre.getText());
producto.setDescripcion(forminventario.txtDescripcion.getText());
producto.setPrecio(Float.parseFloat(forminventario.txtPrecio.getText()));
producto.setStock(Integer.parseInt(forminventario.txtStock.getText()));
dbproducto.actualizar(producto);
JOptionPane.showMessageDialog(forminventario, "¡REGISTRO ACTUALIZADO!");
clean();
this.cargarTabla("");
} catch (Exception ex) {
Logger.getLogger(ControladorProducto.class.getName()).log(Level.SEVERE, null, ex);
}
}
Que tal dog,
Ya está supera la segunda ves de que uses geshi
(https://3.bp.blogspot.com/-O6qDroNEzts/W8sWHPnV3MI/AAAAAAAADJw/mypp_PTYxbA_uKr7E-O-x0epDjSUdk3mwCK4BGAYYCw/s1600/geshi.gif)
try{
// Abrir conexion
this.connect();
String sql = "UPDATE productos SET nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ?, status = ? WHERE idProducto = idProducto;";
this.sqlConsulta = this.conexion.prepareStatement(sql);
this.sqlConsulta.setInt(1, producto.getId());
this.sqlConsulta.setString(2, producto.getNombre());
this.sqlConsulta.setString(3, producto.getCodigo());
this.sqlConsulta.setString(4, producto.getDescripcion());
this.sqlConsulta.setFloat(5, producto.getPrecio());
this.sqlConsulta.setInt(6, producto.getStock());
this.sqlConsulta.setInt(7, 1);
// Executa consulta y Cerrar conexion
this.sqlConsulta.executeUpdate();
}
catch(SQLException e){
System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
}
Has, esto para ver la stack completa de la exception
ex.printStackTrace();
también cierra el prepareStatement luego del update
this.sqlConsulta.executeUpdate();
this.sqlConsulta.close(); //para cerrar el prepareStatement