0
votes

RESEILLETS: do {...} tandis que (...); vs alors que (...) {...}

Je vois souvent des gens à faire tandis que (Resulatset.Next (Next ()) {...} mais ne saute pas la première ligne? Il passe directement à la rangée suivante.

Ne devriez-vous pas faire à la place do {...} tandis que (Resultats.Next (Next ()); ?


1 commentaires

Essayez d'accéder au premier résultat avant d'utiliser Suivant ();).


4 Réponses :


1
votes

Non, il ne saute pas la première rangée.

suivant () est requis pour être appelé avant traiter la première ligne.

Donc, en fait, le do ... tandis que solution ne fonctionne pas, car les Resulats ne seraient pas correctement positionnés pour la première itération de la boucle.


0 commentaires

1
votes

Non, lisez le Suivant () Java Docs

déplace le curseur d'une ligne d'une ligne de sa position actuelle. Un curseur de résultatsset est initialement positionné avant la première rangée; Le premier appel à la méthode suivante fait la première ligne de la ligne actuelle


0 commentaires

1
votes

selon la spécification:

Un curseur de résultatsset est initialement positionné avant la première rangée;

En réalité, le premier suivant () positionnera le curseur à la première ligne. Voir Javadoc officiel


0 commentaires

1
votes

Ce n'est pas.

ResultatsSet contient un curseur interne, qui commence avant le premier élément.

Si vous essayez d'appeler résultatsset.GetString ("quelque chose") Avant de déplacer le curseur d'ici, cela échouera (pourquoi ne pas l'essayer).

tandis que (RESEILLET.NEXT (NEXT (NEXT (NEXT (NEXT (NEXT ()) {...} est le moyen préféré de itérer via un ResultSet


0 commentaires