select max en prepareStatement
Hola, a ver si alguien me puede echar una mano porque no sé por qué no me funciona lo siguiente(JDBC y SQL server).
Estoy intentando buscar el máximo código (Id) de una tabla y lo hago asÃ:
PreparedStatement pstmt = null;
int NMaxima=0;
ResultSet rs=null;
try {
pstmt = con.PrepareStatement("select MAX(Id) FROM tabla WHERE NAlu = ? ");
pstmt.SetInt(1, nalumno);
rs = pstmt.ExecuteQuery();
if (rs.next()) {
rs.getInt(NMaxima);
}
catch (SQLException e) {
System.out.println("error");
}
La sentencia siempre entra por la exception e imprime que hay error. ¿que estoy haciendo mal? a ver si me podéis echar una mano,
muchas gracias.
Estoy intentando buscar el máximo código (Id) de una tabla y lo hago asÃ:
PreparedStatement pstmt = null;
int NMaxima=0;
ResultSet rs=null;
try {
pstmt = con.PrepareStatement("select MAX(Id) FROM tabla WHERE NAlu = ? ");
pstmt.SetInt(1, nalumno);
rs = pstmt.ExecuteQuery();
if (rs.next()) {
rs.getInt(NMaxima);
}
catch (SQLException e) {
System.out.println("error");
}
La sentencia siempre entra por la exception e imprime que hay error. ¿que estoy haciendo mal? a ver si me podéis echar una mano,
muchas gracias.
Estás utilizando el método getInt de ResultSet mal. Al método le tienes que pasar como parámetro el nombre de la columna que quieres extraer (o sea, "Id") o el número, si prefieres ordenarlas por número (o sea, 1). Si quieres asignar el valor que recuperas de la base de datos a tu variable NMaxima, debes hacer:
NMaxima = rs.getInt ("Id");
ó
NMaxima = rs.getInt (1);
Ya nos contarás
Salu2
Ken
NMaxima = rs.getInt ("Id");
ó
NMaxima = rs.getInt (1);
Ya nos contarás
Salu2
Ken
