HSQLDB

SpaceHam Messages postés 78 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 22 octobre 2015 - 29 oct. 2009 à 22:11
SpaceHam Messages postés 78 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 22 octobre 2015 - 30 oct. 2009 à 19:21
Bonjour,

je me suis fait une application simple afin de voir le prix de carte. Lorsque j'appelle me BD (hsqldb) et que je demande de me donner toutes les cartes disponible voici le message d'erreur qui me sort:

java.sql.SQLException: No data is available

L'erreur se produit sur la ligne d'ou j'essaie d'extraire le id = rs.getString("id");
Pourtant j'ai bien remplie ma BD d'au moins 6 cartes.

-----------TABLE DE CREATION------------
CREATE TABLE MAGASIN_CARTE(
ID VARCHAR(15) PRIMARY KEY,
NOM VARCHAR(25),
DESCRIPTION VARCHAR(50),
PRIX FLOAT
);

INSERT INTO MAGASIN_CARTE VALUES ('CT08062067', 'Mage', 'Mage noir', 60.50)
INSERT INTO MAGASIN_CARTE VALUES ('CT08062068', 'Guerrier', 'Chevalier des terres sombres', 43.49)
INSERT INTO MAGASIN_CARTE VALUES ('CT08062073', 'Gobelin', 'Minier', 10.99)
INSERT INTO MAGASIN_CARTE VALUES ('CT08062085', 'Grispor', 'Cheval', 50.29)
INSERT INTO MAGASIN_CARTE VALUES ('CT08062089', 'Sorcier', 'Sorcier noir', 35.19)
INSERT INTO MAGASIN_CARTE VALUES ('CT09022023', 'Elf Belge', 'Elf guerisseur', 30.00)
INSERT INTO MAGASIN_CARTE VALUES ('CT09022012', 'Chef Trubam', 'Mage noir', 79.99)
--------------------------------------

--------- methode dans ma persistance------------

public Vector obtenirCartes()
{
Vector v = new Vector();

try
{
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM MAGASIN_CARTE");
while(rs.next());
{
Carte carte = null;
String idcarte = rs.getString("id");
String nom = rs.getString("nom");
String description = rs.getString("description");
float prix = rs.getFloat("prix");
carte = new Carte(nom, idcarte);
carte.setDescription(description);
carte.setPrix(prix);
v.add(carte);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
return v;
}

-------------------------------------------------
lorsque j'entre dans mon while le rs.next() = false (probablement le pourquoi il ne trouve rien mais pourquoi???)

Je me suis basé sur un autre programme semblable que j'avais fait et je ne trouve vraiment pas l'erreur.

Si vous avez une idée faites moi signe.

SpaceHamAgent

2 réponses

tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
30 oct. 2009 à 17:53
Bonjour,
Tu as un ";" en trop à la fin de ton while(rs.next()) : arrivé au getString, la fin de la requête est déjà survenue, et plouf.

thip
0
SpaceHam Messages postés 78 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 22 octobre 2015
30 oct. 2009 à 19:21
Merci pour la réponse... il faut croire que je ne voyais plus clair. ;)


SpaceHamAgent
0
Rejoignez-nous