Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
11
respuestas

Alguien logro que funcione el botón de Modificar?

he tratado de hacer que funcione, incluso no da errores y el programa corre normal, pero no realiza la modificación

11 respuestas

Hola Rafael. Podrias Mostrar el codigo con el SQL y los statements.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadIngrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Mmm Tendria que revisar todo tu codigo...no le veo el error.. Podrias revisar tu tabla, en la base de datos debe llamarse tambien PRODUCTO para que funcione correctamente la query.

Hola, creo que puede deberse a que al realizar el cambio en algún campo, debes hacer clic fuera de la tabla antes de darle al boton modificar, el código esta bien.

Tabla

que no te quede así.

Aun no logro hacer que funcione, voy a seguir con el curso, a ver si en el futuro logro solucionarlo, gracias por sus comentarios

Te faltó cerrar el código sql con punto y coma, además antes de ejecutar el botón, seleciona espacio vacio para que el campo no esté seleccionado mientras ejecutas, prueba así:

Clave : ";"

statement.execute("UPDATE PRODUCTO SET NOMBRE = '" + nombre + "', DESCRIPCION = '" + descripcion + "' , CANTIDAD = " + cantidad

         + " WHERE ID = " + id + " ;");

         Saludos de México.

según lo que pude leer para que no se tenga errores de sintaxis de la Query de MySQL lo mejor es utilizar consultas parametrizadas o preparadas. Con este tipo de método me funciono.

public int modificar(Integer id, String nombre, String descripcion, Integer cantidad) throws SQLException {
    Connection con = new ConnectionFactory().recuperaConexion();
    PreparedStatement stmt = con.prepareStatement("UPDATE PRODUCTO SET NOMBRE = ?, DESCRIPCION = ?, CANTIDAD = ? WHERE ID = ?");
    stmt.setString(1, nombre);
    stmt.setString(2, descripcion);
    stmt.setInt(3, cantidad);
    stmt.setInt(4, id);
    int updateCount = stmt.executeUpdate();
    con.close();
    return updateCount;

Lo estudias y analizas para ver como es que te funciona. Saludos

Buenas noches:

Funciona así como dice Sebastian, antes de dar clic al botón de modificar ,seleccionar el siguente campo o afuera de la tabla y luego el bótón modificar , y así si lo modifica.

Buenas noches:

Confirmo Segun la solucion dada por Sebastian es como la modificacion se realiza... muchas gracias

Hola, en el codigo del ejemplo falta ejecutar el statement para que se guarde la modificacion. Deberia quedar asi:

public int modificar(Integer id, String nombre, String descripcion, Integer cantidad) throws SQLException {
        Connection con = new ConnectionFactory().recuperaConexion();
        PreparedStatement stmt = con.prepareStatement("UPDATE PRODUCTO SET NOMBRE = ?, DESCRIPCION = ?, CANTIDAD = ? WHERE ID = ?");
        stmt.setString(1, nombre);
        stmt.setString(2, descripcion);
        stmt.setInt(3, cantidad);
        stmt.setInt(4, id);
        stmt.execute();
        int updateCount = stmt.executeUpdate();
        con.close();
        return updateCount;

    }

Tu tienes el método de esta forma

public int modificar(String nombre, String descripcion,Integer cantidad ,Integer id) throws SQLException {

Connection con = new ConnectionFactory().recuperaConexion();

Intenta modificarlo de esta manera

public int modificar(String nombre, String descripcion,Integer cantidad ,Integer id) throws SQLException {

ConnectionFactory factory = new ConnectionFactory();

Connection con = factory.recuperaConexion();