Java - Problemas con los resultset

 
Vista:

Problemas con los resultset

Publicado por jaime (6 intervenciones) el 29/08/2006 16:56:31
Buenas tardes a todos, el caso es que tengo un pequeño problema que aun no e sido capaz de solucionar. Cuando hago una busqueda y la almaceno en un resultset, luego si la quiero ver en un textarea, siempre me empieza por null y acto seguido me da la informacion que quiero ver.

El codigo es el siguiente:

AccesoBd bd = new AccesoBd();
boolean abierta = bd.abrirConexion("java", "sun.jdbc.odbc.JdbcOdbcDriver");
if (abierta){
sr = bd.lanzarSelect("SELECT * FROM HARD");
try{
int cols = (sr.getMetaData().getColumnCount()); // De esta manera, averiguo el nº de columnas
while (sr.next()){
for(int pos=1; pos <= cols; pos++ ) { //Por cada registro, voy sakando el valor de kada kolumna.
resul1 +=sr.getString(pos)+" "; //Todo ello, lo voy almacenando en una variable de tipo String
}
System.out.println(resul+ "\n");
resul1 +='\n';
}

texthard.setText(resul1.toString());
}catch(SQLException sqle){
System.out.println(sqle.getMessage());
}
}else{
System.out.println("Error, la base de datos no esta disponible");
}

y el resultado es el siguiente:

null1 Sistema Operativo
2 Diseño gráfico
3 Programación
4 Mesenger

lo que quiero es q no me aparezca ese 'piiiiiiiii' null.

Bueno, espero vuestras respuestas. Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Problemas con los resultset

Publicado por Pablo CD (51 intervenciones) el 29/08/2006 19:35:38
Tienes que hacer :

sr.next() antes de coger los campos que quieras de sr

Siendo sr la variable que tienes en tu codigo.

Tienes que hacer esto porque tu consulta genera una tabla de una o varias filas y al generar la consulta hay una especie de puntero a esa tabla (el sr que tienes) que no apunta a la primera posicion de esa tabla, sino a la anterior (a null).

Por eso se inicializa siempre con un next(), aunque pueda parecer ilógico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con los resultset

Publicado por jaime (6 intervenciones) el 30/08/2006 08:43:26
Hola Pablo CD, e probado lo que me decias, pero no consigo averiguar donde quieres que situe el sr.next(). Para mi inicializar una variable es:
Ej:
int i=0;
en este caso seria---> ResultSet sr.next(); lo cual no me deja hacer, de todas formas e probado a ponerlo en unos cuantos sitios y no consigo nada. es mas, ni aun utilizando un sr.next(); y saltandome el primer registro, consigo que desaparezca el null ese.

Gracias por la respuesta, haber si conseguimos solucinarlo. Jaime
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con los resultset

Publicado por c (28 intervenciones) el 30/08/2006 08:52:28
Hay que poner sr.next() antes del bucle while.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Problemas con los resultset

Publicado por chuidiang (950 intervenciones) el 30/08/2006 09:18:02
Hola:

Tal como lo tienes

while (rs.next())
{
...
}

ya estás haciendo el primer next(), no es necesario hacer otro. El problema debe estar en otro lado.

Prueba a inicializar resul1 a "" ya que si lo tienes a null, la primera vez que haces

resul1+="cadena"

es equivalente a

resul1 = null + "cadena"

y creo que java lo entiende y pone el "null" (aunque no lo he probado)

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con los resultset

Publicado por jaime (6 intervenciones) el 31/08/2006 00:42:19
chuidiang tenia razon. el problema era que habia creado la variable resul asi:
String resul;

ahora la e inicializado asi:
String resul="";

y adios problema.

Muchas gracias por vuestra ayuda. muy bueno chuidiang.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar