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
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