ayuda con los ResultSet

cymc
24 de Mayo del 2008
Hola, por favor si alguien puede ayudarme se lo agradecería mucho. El problema es el siguiente.
Estoy haciendo una conexión de jdeveloper 10g con Oracle9i. Hasta ahora la conexión fue exitosa, pero el problema es cuando uso los resultset. El código que tengo es el siguiente:
try
{
Class.forName(\"oracle.jdbc.driver.OracleDriver\");
Conexión=DriverManager.getConnection(\"jdbc:oracle:thin:@localhost:1521:cymc\",\"yanine\",\"yanine\");

Sentencia = Conexion.createStatement();

Resultado = Sentencia.executeQuery(\"SELECT* FROM factura\");

System.out.println(Resultado.getInt(\"nroFactura\"));

Conexion.close();
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe);
}
catch(SQLException sqle)
{
System.out.println(sqle);
}

Mi programa ya se conecta con oracle pero cuando quiero mostrar los resultados del resultset me sale el siguiente mensaje:
Java.sql.SQLException: Indice de columna no valido
No lo reconoce “nroFactura”, que es una columna de factura. Y también cuando uso la función “Resultado.getRow()” , me sale como resultado 0.
Nose porque sale este error, si mi base de datos ya esta conectado. Las tablas, la cree con script de SQL*Plus.
Necesito ayuda por favor, es urgente.


luislopezco
24 de Mayo del 2008
Al parecer no es que no reconozca la columa si no que la query no trae datos por eso el getrow devuelve 0, priemro deberias preguntar si el ResultSet trae datos con resultado.next() recuerda que el cursor del ResultSet inicialmente esta posicionado antes del priemer registro, con un next() lo pones en el priemr registro, si sabes que la query puede traer mas de un dato usa un while(Resultado.next()) si sabes que solo va a traer un resultado usa un if(Resultado.next()). espero haberte ayudado.

Luis