ASP classique boucle do while montre l'erreur
J'ai un classique de la page ASP avec un simple tableau html, et je veux en boucle les lignes de la table basée sur un nombre inconnu d'enregistrements de la base de données, cependant, quand je suis en boucle les enregistrements avec une boucle do-while, j'obtiens un message d'erreur indiquant que BOF ou EOF est Vrai. Je veux que toutes les autres lignes de la table à alterner les couleurs d'arrière-plan (les couleurs, j'ai mis dans le CSS).
<% do while not rsTest.eof %>
<tr class="odd">
<td colspan="5"><%=(rsTest.Fields.Item("field").Value)%></td>
</tr>
<% rsTest.moveNext
if not rsTest.eof then
count = count + 1 %>
<tr class="even">
<td colspan="5"><%=(rsTest.Fields.Item("field").Value)%></td>
</tr>
<% end if %>
<% count = count + 1
rsTest.moveNext
loop %>
L'erreur, selon le navigateur, se produit sur le dernier "rsRoster.moveNext" juste avant la boucle. La boucle ne fait pas d'erreur si il y a un même nombre d'enregistrements tirés de la base de données, mais les erreurs si il y a une quantité impaire de dossiers tiré. J'ai essayé d'insérer des "si EOF puis plus rien, sinon exécuter du code", mais le code de vérification si EOF semble juste être ignoré quand je fais ça. Toutes les suggestions seraient appréciées.
OriginalL'auteur user2762748 | 2013-11-15
Vous devez vous connecter pour publier un commentaire.
Je sais que je suis rouillé sur celui-ci, mais essayez ceci:
J'ai commencé avec le oddFlag=1, ce qui signifie que je vais commencer avec une rangée impaire dans ce cas. Donc, quand il est rangée impaire, il va montrer l'étrange classe de ligne, puis tourner à oddFlag à 0, ce qui signifie dans la boucle suivante, il serait de la même ligne. Ainsi, sur la boucle suivante, il affiche la même ligne, puis tournez le oddFlag à 1, de sorte que la boucle suivante serait pour impair de nouveau. Et ainsi de suite et ainsi de suite.
OriginalL'auteur Edper
Depuis les autres réponses ne parle pas de cela: le problème avec ton code, c'est que vous êtes en train de faire MoveNext deux fois, et la deuxième n'a pas de test si le premier a déjà atteint les expressions du FOLKLORE.
En tout cas, c'est inutilement compliqué pour faire l'alternance des couleurs.
Avec cette méthode, votre variable de compteur (
i
) est disponible comme une réelle, bien, contre - ainsi, par exemple, si vous voulez écrire un "nombre de lignes retournées" message à la fin, vous pouvez.OriginalL'auteur Martha
Peu bâclée ici, mais c'est la façon dont je devrais normalement faire:
Vous n'êtes pas. je l'incrémente de 1 à 2 puis de nouveau à 1. Vous n'avez pas besoin de connaître le nombre d'enregistrements dans la base de données.
OriginalL'auteur HK1
Pourquoi ne pas simplement utiliser:
Ou assurez-vous que:
Et la meilleure façon de le faire est de mettre en cache everyting et de garder la connexion très court:
OriginalL'auteur Plippie