amine1234Z
Messages postés134Date d'inscriptionsamedi 26 mai 2007StatutMembreDernière intervention31 mai 2010
-
29 sept. 2009 à 00:52
tpoinsot
Messages postés345Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention17 octobre 2014
-
29 sept. 2009 à 12:46
Salut, j'espère que vous allez bien;
bon mon souci est comme suite:
j'ai des enregistrement dans une table, par exemple:
.Numéro de type numérique
.Nom de type texte
.DateNaissance de type Date
alors lors de la sélection des ces enregistrement je fait:
[i] Statement st = null;
st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM CLients ");
md = rs.getMetaData();
colonnes = md.getColumnCount();
while (rs.next()){
for (int i = 1; i <=colonnes; i++){
System.out.println(rs.getDate(3));//selectionnée que la date
}
}/i
Le problème c'est quand dans un tel enregistrement on pas spécifier la date (la valeur de l'enregistrement est vide).
Il me lance se message
java.lang.NullPointerException Or je veux qu'il affiche rien dans ce cas
tpoinsot
Messages postés345Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention17 octobre 20144 29 sept. 2009 à 12:46
Bonjour,
je ne crois pas que
while ((rs.next())!= null)
soit différent de
while ( rs.next() )
du point de vue du compilateur.
En revanche, ta boucle charge le 3e champ autant de fois qu'il y a de colonnes. Cen'est pas ce que tu veux, je suppose.
Personnellement, je n'aime pas "select * from". Je préfère "select numero, nom, dn from ..."
et pour chaque enregistrement faire les getXXX() appropriés :
while ( rs.next() ) {
// je connais les colonnes !
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
System.out.println(rs.getDate(3));
}
2 conseils :
1) évite d'appeler getXXX() plus d'une fois sur la même colonne
2) n'oublie pas d'utiliser try/catch