Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2012, 12:28
yamidvo
 
Fecha de Ingreso: junio-2012
Ubicación: colombia
Mensajes: 48
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta Actualizar/UPDATE base de datos desde java

Todo estaba bien en mi base de datos, podia consultar y guardar registros, hasta que decidi empezar a actualizar utlizando el comando UPDATE; el programa esta hecho en el lenguaje java, cuando intento actualizar el registro me tira el siguiente error:
java.sql.SQLException : parameter index out of range (5> number of parameters, with is 4).
el nombre de la tabla es producto y tiene 5 campos: id, nombre, proveedor, precio, cantidad; todos los campos son tipo varchar.

el codigo del boton modificar es el siguiente:

Código java:
Ver original
  1. String sSQL = "";
  2.         conectate mysql = new conectate();
  3.         Connection cn = mysql.getConnection();
  4.         String Id, nom, prov, pre , cant;
  5.           Id=  txtid.getText();
  6.           nom=  nombre.getText();
  7.            prov= proveedor.getText();
  8.            pre= precio.getText();
  9.            cant= cantidad.getText();
  10.            
  11.            sSQL = "UPDATE producto " +
  12.                     "SET nombre = ?," +
  13.                     "proveedor = ?," +
  14.                     "precio = ?," +
  15.                    "cantidad = ?," +
  16.                     "WHERE id = "+id_actualizar;
  17. /** id_actualizar es una variable de clase y se implementa en el metodo BuscarEditar(String id) donde toma el valor del parametro de dicho metodo*/
  18.       String  mensaje = "Los datos se han Modoficado de Manera Satisfactoria...";
  19.      
  20.       try
  21.         {
  22.             PreparedStatement pst = cn.prepareStatement(sSQL);// con esta sentencia se insertan los datos en la base de datos
  23.             pst.setString(1, Id);
  24.             pst.setString(2, nom);
  25.             pst.setString(3, prov);
  26.             pst.setString(4, pre);
  27.             pst.setString(5, cant);
  28.             int n = pst.executeUpdate();//valida si se guardaron los datos; si pst>0 entonces se guardaron
  29.  
  30.             if(n > 0)
  31.             {
  32.                 JOptionPane.showMessageDialog(null, mensaje);
  33.                 CargarTabla("");//l momento de agregar un nuevo registro, actualiza la tabla
  34.             }
  35.         }
  36.         catch (SQLException ex)
  37.         {
  38.             JOptionPane.showMessageDialog(null, ex);
  39.         }
Seguire inventigando por mi cuenta a ver si lo soluciono, gracias a los que respondan.