Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/10/2014, 01:23
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 9 meses
Puntos: 182
Respuesta: Problema MySQL update

Buenas,

No comentas cual es la excepción que te da, que es fundamental para saber que pasa.

Respecto al ID, creo que no has entendido bien lo que te ha dicho choces en Javahispano.

Lo que él te trata de decir es lo que te digo yo también al final de mi post. NO COMPRUEBAS SI SE HA MODIFICADO ALGO O NO. Aún así, muestras un mensaje siempre indicando que se ha modificado.

Pongamos que en tu tabla de productos tienes tres elementos con ID 1, 2 y 3. Luego haces un update utilizando un WHERE id=15 . Esa consulta no te va a dar ningún tipo de error ni excepción. Se va a ejectura correctamente pero te va a indicar que no se ha actualizado ningún elemento.

Para que lo entiendas bien, prueba este código modificado:

Código Java:
Ver original
  1. public void modificarArticulo(int id, String nombre, String descripcion, int stockMinimo, int stockActual) {
  2. Connection miConexion = (Connection) ConexionDB.GetConnection();
  3. // set the preparedstatement parameters
  4. try { // create our java preparedstatement using a sql update query
  5. ps = miConexion.prepareStatement("UPDATE productos SET "
  6. + "nombre = ?, "
  7. + "descripcion = ?, "
  8. + "stockMinimo = ?, "
  9. + "stockActual = ? "
  10. + "WHERE id = ?");
  11. // set the preparedstatement parameters
  12. ps.setString(1, nombre);
  13. ps.setString(2, descripcion);
  14. ps.setInt(3, stockMinimo);
  15. ps.setInt(4, stockActual);
  16. ps.setInt(5, id);
  17.  
  18. JOptionPane.showMessageDialog(null, "Los datos a actualizar son:\n \n "
  19. + "Indice '"+id+"'\n "
  20. + "Nombre '"+nombre+"'\n "
  21. + "Descripcion '"+descripcion+"'\n "
  22. + "Stock Minimo '"+stockMinimo+"'\n "
  23. + "Stock Actual '"+stockActual+"'");
  24.  
  25. JOptionPane.showMessageDialog(null, "RECUERDA: vas a modificar el elemento con ID: " + id + ". Verifica que existe en la base de datos un registro con dicho ID");
  26.  
  27. // call executeUpdate to execute our sql update statement
  28. int filasModificadas = ps.executeUpdate();
  29. if (filasModificadas == 0) {
  30. JOptionPane.showMessageDialog(null, "No se ha actualizado ningún registro");
  31. } else {
  32. JOptionPane.showMessageDialog(null, "Datos actualizados correctamente");
  33. }
  34. }
  35.  
  36. catch (SQLException e) {
  37. JOptionPane.showMessageDialog(null, "No se pudo actualizar el registro");
  38. } finally {
  39. if (ps != null) {
  40. ps.close();
  41. }
  42. }
  43. }

Un saludo
__________________
If to err is human, then programmers are the most human of us