Ayuda Urgente por favor JAVA!!!!

Juan David Reina

Lanero Regular
22 Sep 2014
2
Buenas tardes compañeros programadores:

Tengo un problema, para que por favor me ayuden los que me puedan ayudar, estoy resolviendo un ejercicio de mi universidad, se me ha solicitado crear una ventana de logeo a sqlserver, en la que despues de validar el usuario y la contraseña, el administrador podra cambiar los datos de cualquier usuario que escoja, la conexion y validacion de los datos en la bd me funcionan correctamente, pero cuando intento realizar el update me genera un java.lang.NullPointerException. Estoy enviando los datos en un vector desde el formulario a un metodo en el mismo formulario, aqui esta el codigo:

Este es el metodo:

public boolean ActualizarUsuario(Object[] datos){
boolean estado=false;
int filasAfectadas=0;
String CadenaUpdate= "Update usuarios set clave='"+datos[1].toString()+"', nombre='"+datos[2].toString()+"',"+
"edad='"+datos[3].toString()+"', direccion='"+datos[4].toString()+"',telefono='"+datos[5].toString()+"', "+
"correo='"+datos[6].toString()+"' where usuario ='"+datos[0].toString()+"'";

try{
Statement update = null;
update= conn.createStatement();
filasAfectadas=update.executeUpdate(CadenaUpdate);

if(filasAfectadas>0){
estado=true;
}
JOptionPane.showMessageDialog(null, ""+filasAfectadas);
}catch(SQLException e){
JOptionPane.showMessageDialog(null, "ERROR DE CONEXIÓN");
JOptionPane.showMessageDialog(null, e+"\n");
}
return estado;
}



y este es el boton:

private void btnCambiarActionPerformed(java.awt.event.ActionEvent evt) {

String clave1= txtClave1.getText();
String clave2= txtClave2.getText();

if(clave1.isEmpty() || clave2.isEmpty()){
JOptionPane.showMessageDialog(null, "Debe llenar ambos campos de clave","Error", JOptionPane.ERROR_MESSAGE);
}

else if(clave2.equals(clave1)){
Conexion1 actualizando = new Conexion1();
actualizando.conectar();

Object[] datos = new Object[7];
datos[0]=this.cmbUsuarios.getSelectedItem();
datos[1]=this.txtClave2.getText();
datos[2]=this.txtNombre.getText();
datos[3]=this.txtEdad.getText();
datos[4]=this.txtDir.getText();
datos[5]=this.txtTel.getText();
datos[6]=this.txtCorreo.getText();

boolean estado=ActualizarUsuario(datos);

if(estado=true){
JOptionPane.showMessageDialog(null, "Datos actualizados correctamente!");
}
else
JOptionPane.showMessageDialog(null, "Error al actualizar los datos");
}

else{
JOptionPane.showMessageDialog(null, "Las claves no coinciden entre si, favor rectificar","Error", JOptionPane.ERROR_MESSAGE);
txtClave1.setText("");
txtClave2.setText("");
txtClave1.requestFocus();
}
}


el mensaje de error siempre me lleva a la linea de codigo del metodo (update= conn.createStatement();) dentro del try, la verdad no veo el error, quisiera que por favor me ayudaran, debo presentar esto hoy!!! :'(

Muchas gracias a todos por su valiosa ayuda!

Juan David Reina
Estudiante de Ingenieria de sistemas
 
por lo que menciona y en la linea que sale el error creo que el conn es nulo y por eso falla, es posible que tenga que conectarse nuevamente cada vez que quiera hacer algo con la base de datos, eso ya depende de como tenga diseñado el programa
 
Eureka!!!
Muchas gracias @seidan , efectivamente la conexion se iba nula, ademas, estaba igualandola con el ojeto conn de tipo conexion, y no con el objeto st de tipo statement, mil gracias!
 

Los últimos temas