Introducción
De vez en cuando seguro que nos toparemos con un error similar a este:
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:855)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2710)
Solución
La solución es muy simple, suponiendo que el result set se obtenga en la variable resultados, entonces bastaría con poner un:
resultados.next();
Te amo :'v
ResponderEliminarGracias! :') tus visitas me hacen el día :)
Eliminarprivate void btnrolActionPerformed(java.awt.event.ActionEvent evt) {
ResponderEliminartry {
ControladorRegistro cr = new ControladorRegistro();
Statement consulta = miconexion.createStatement();
ResultSet CodRol = consulta.executeQuery("SELECT RolesLogin_fk FROM login WHERE CorreoLogin='"+jComboBox_Correo+"'");
JOptionPane.showMessageDialog(this, CodRol);
// txtRol.setText(""+CodRol);
// cr.setRolesPersona_fk(txtRol.getText());
} catch (SQLException ex) {
Logger.getLogger(Registro.class.getName()).log(Level.SEVERE, null, ex);
}
}
Y ME SALE ESTE ERROR
error en java com.mysql.jdbc.ResultSet@
EN VES DE APARECERME EL CODIGO DEL LOGIN ME APARECE ESE ERROR
ResponderEliminarhas probado con JOptionPane.showMessageDialog(this, CodRol.next());
ResponderEliminarGracias NETA te besaria
ResponderEliminarHola!
ResponderEliminarEstoy validando un registro en la BD con este código:
void Validacedula() {
try{
String sql=("SELECT cedulacli,nombrecli FROM registro_clientes WHERE cedulacli = '" + rnc.getText()+ "'");
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sql);
if ( rs.next() ){
String nom = rs.getString("nombrecli");
JOptionPane.showMessageDialog(null, "CEDULA O RNC REGISTRADO A NOMBRE DE: " +nom , "Error",JOptionPane.ERROR_MESSAGE);
rnc.requestFocus(true);
} else {
// JOptionPane.showMessageDialog(null, "NO EXISTE RNC O CEDULA: " + rnc.getText(), "Error",JOptionPane.ERROR_MESSAGE);
Valida_codigo_cliente();
rs.close();
}
} catch (SQLException exx){
JOptionPane.showMessageDialog(null, exx);
}
}
Pero si no es igual al seleccionado en la BD, tengo que me abra otra validación pero para el código del cliente:
void Valida_codigo_cliente() {
try{
String sql1=("SELECT codigocli,nombrecli FROM registro_clientes WHERE codigocli = '" + codigo.getText()+ "'");
Statement stt = cn.createStatement();
ResultSet rss = stt.executeQuery(sql1);
String nom = rss.getString("nombrecli");
if (rss.next() ){
JOptionPane.showMessageDialog(null, "EL CODIGO PERTENECE A: " + nom, "Mensaje",JOptionPane.INFORMATION_MESSAGE);
codigo.requestFocus(true);
} else {
insertar_datos_clientes_planes();
insertar_datos_clientes();
limpiar();
bloquear();
nuevo.setEnabled(true);
// JOptionPane.showMessageDialog(null, "NO CODIGO: " + codigo.getText(), "Error" ,JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
}
Y aun así me sale: java sql sqlexception before start of result set
en la segunda consulta tienes (String nom = rss.getString("nombrecli"), esto tienes que ponerlo en un while (rss.next()) {
EliminarString nom = rss.getString("nombrecli"
}
y listo
Al momento de llegar a:
ResponderEliminar} else {
// JOptionPane.showMessageDialog(null, "NO EXISTE RNC O CEDULA: " + rnc.getText(), "Error",JOptionPane.ERROR_MESSAGE);
Valida_codigo_cliente();
rs.close();
}
es que me sale el error