Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/02/2011, 11:24
oriion
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: actualizacion invisible

hola CarlosAP, gracias nuevamente por responder, pero al fin ya se pudo solucionar la actualizacion:

Del metodo que hacia la conexion:

////conexion a labase de datos////////////////////
private void entrarbdt(){
try {

Class.forName("com.mysql.jdbc.Driver");
conectar = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/nuevosclientes","root", "7713gil");
Statement stm = conectar.createStatement();
guardar = conectar.prepareStatement("INSERT INTO clientes (id,empresa,contacto,telefono,direccion,mail,ciuda d,clasificacion) values(?,?,?,?,?,?,?,?)");
busque = conectar.prepareStatement("SELECT * FROM clientes ");
actua = conectar.prepareStatement("UPDATE clientes SET empresa= ?,"+"contacto= ?,"+"telefono= ?,"+"direccion= ?,"+"mail= ?,"+"ciudad= ?,"+"clasificacion= ?"+" WHERE id= ?");

}
catch (Exception e) {
e.printStackTrace();
}

}

quite la linea que actualiza es decir:

actua = conectar.prepareStatement("UPDATE clientes SET empresa= ?,"+"contacto= ?,"+"telefono= ?,"+"direccion= ?,"+"mail= ?,"+"ciudad= ?,"+"clasificacion= ?"+" WHERE id= ?");

y le agregue la posicion del id es decir:

actua = conectar.prepareStatement("UPDATE clientes SET empresa= ?,"+"contacto= ?,"+"telefono= ?,"+"direccion= ?,"+"mail= ?,"+"ciudad= ?,"+"clasificacion= ?"+" WHERE id= '"+resu.getInt("id")+"'");

porque esta posicion??

Resulta que al hacer la consulta o busqueda

despues del while

while(resu.next())

el primer parametro de busqueda es el id junto con los otros es decir:

resu.getInt("id");
resu.getString("empresa");
resu.getString("contacto");
resu.getString("telefono");
resu.getString("direccion");
resu.getString("mail");
resu.getString("ciudad");
resu.getString("clasificacion");

esto lo hago con el fin de imprimir los resultados del dato buscado con el nombre dado por la busqueda.

adicional antes de ejecutar la actualizacion

actua.executeUpdate();

se definen los datos de entrada ya modificados para actualizar:
actua.setString(1, nombre);
actua.setString(2, contacto);
actua.setString(3, telefo);
actua.setString(4, dire);
actua.setString(5, mail);
actua.setString(6, ciudad);
actua.setString(7, clasifi);

en el codigo anterior incluia el id desde 1, es decir:

actua.setInt(1,"0" ); error
actua.setString(2, nombre);
actua.setString(3, contacto);
actua.setString(4, telefo);
actua.setString(5, dire);
actua.setString(6, mail);
actua.setString(7, ciudad);
actua.setString(8, clasifi);

pero MySQL, informa que se actualizan 7 parametros y no 8 como le indico, ya que desde UPDATE ya se define id como parametro de ubicacion para actualizar, modifico el orden de la entrada de los datos, como lo indique antes, y de esta forma MySQL define la ubicacion y toma los datos de entrada modificados ubicandolos.


Saludos.