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:
String sSQL = "";
conectate mysql = new conectate();
Connection cn = mysql.getConnection();
String Id, nom, prov, pre , cant;
Id= txtid.getText();
nom= nombre.getText();
prov= proveedor.getText();
pre= precio.getText();
cant= cantidad.getText();
sSQL = "UPDATE producto " +
"SET nombre = ?," +
"proveedor = ?," +
"precio = ?," +
"cantidad = ?," +
"WHERE id = "+id_actualizar;
/** 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*/
String mensaje = "Los datos se han Modoficado de Manera Satisfactoria...";
try
{
PreparedStatement pst = cn.prepareStatement(sSQL);// con esta sentencia se insertan los datos en la base de datos
pst.setString(1, Id);
pst.setString(2, nom);
pst.setString(3, prov);
pst.setString(4, pre);
pst.setString(5, cant);
int n = pst.executeUpdate();//valida si se guardaron los datos; si pst>0 entonces se guardaron
if(n > 0)
{
JOptionPane.showMessageDialog(null, mensaje);
CargarTabla("");//l momento de agregar un nuevo registro, actualiza la tabla
}
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex);
}
Seguire investigando para ver como lo soluciono, a todos los que respondan gracias.
- Inicie sesión o regístrese para enviar comentarios



Tienes:
Tienes:
pst.setString(2, nom);
pst.setString(3, prov);
pst.setString(4, pre);
pst.setString(5, cant);
Peeeero debería ser:
pst.setString(2, prov);
pst.setString(3, pre);
pst.setString(4, cant);
Elimino el primer parámetro, porque no está definido en tu query, o sea que sobra, la excepción dice que te estás pasando por un parámetro. Así lo defines en tu consulta, checa los nombres de los parámetros con los respectivos valores que envías.