2010-06-22 20 views
0

J'utilise un DataReader pour afficher les informations stockées dans une table.Equivalent de RecordSet.MoveNext sans EOF dans ASP.NET

J'ai créé deux bouton pour aller à next enregistrer et à go back.

En VB6 J'ai utilisé ce code:

While Not Recordset1.EOF 
Recordset1.MoveNext 
End While 

En ASP.NET Je n'ai pas trouvé un moyen de le faire comme ça, parce que DataReader n'a pas la propriété EOF.

EDIT:

While Not Recordset1.BOF 
Recordset1.MovePrevious 
End While 

Comment puis-je convertir ce dernier code (VB6) à ASP.NET ??

Répondre

3

Vous utilisez Read au lieu de MoveNext et il renverra false s'il n'y a plus d'enregistrements. Alors :

While rdr.Read() 
    .... ' process this row 
End While 
+0

Le problème est que je dois fermer le DataReader après chaque MyReader.Read(). Donc, je ne me souviens pas du dernier enregistrement où j'étais. –

+0

Aussi comment puis-je retourner sans avoir de débogage. –

+0

@AZIRAR: Désolé, je n'ai pas compris votre question exacte. Je pense que vous ne devriez pas utiliser un DataReader du tout si vous avez un bouton de retour, DataReaders sont seulement en avant. Je suggérerais plutôt que vous utilisiez DataReader pour charger rapidement un DataTable en mémoire et que vous puissiez lire l'enregistrement précédent ou suivant de cette table assez facilement. Voici un article sur le chargement de la table: http://msdn.microsoft.com/en-us/library/system.data.datatable.load.aspx Vous pouvez alors même faire 'Dim rows() en tant que DataRow = table.Select() 'et finir avec le tableau normal etc. –

0

Azirar, HO1 est correct que vous devez utiliser un DataTable. Si vous effectuez une mise à jour après chaque publication et n'avez besoin que d'un seul enregistrement, vous pouvez toujours utiliser un DataReader, mais configurer votre instruction SQL pour obtenir une seule ligne (stocker les informations appropriées dans votre instruction SQL (ou mieux encore procédure stockée) pour récupérer cet enregistrement unique dans les chaînes de requête ou les variables de session).