Pour le phénomène des nombres négatifs lors de la pagination de records, je crois que beaucoup de gens ont rencontré ce problème, et parfois Baidu et Google ne sont pas perplexes.
Un nombre négatif est principalement lié au type de curseur. (Par exemple, il est pratique, en supposant qu'il existe déjà un fichier de la base de données Conn.asp Link et qu'il a été inclus.) Maintenant, un exemple est le suivant:
SQL = SELECT * FROM TABLE où les conditions commander par id dec 'ici peuvent être réécrites en fonction de vos besoins
Set rs = const.execute (sql) '=== Remarque cette phrase ===
Rs.PageSize = 10 '=== Définissez le nombre d'enregistrements par page est 10 ===
Page = request.querystring (page)
Si page = alors page = 1
Sinon ISNUMERIER (PAGE) alors page = 1
Page = CLNG (page)
Si page <1 la page = 1
Si page> Rs.PageCount That = vrs.pageCount
Rs.Absolutepage = Page
cale c
C = 1
Faire sans Rs.Eof et C <= Rs.PageCount
'Contenu de sortie
C = C + 1
Rs.MovEnext
Boucle
«Faire un lien de page
Selon le code ci-dessus, l'objet RecordSet est directement par le code: SET RS = Conn.Exécute (SQL). Et le type de verrouillage est de 0, indiquant que la lecture ne se lit uniquement que, n'indiquant que la lecture uniquement de lecture, indiquant uniquement la lecture, indiquant que la lecture unique indiquant uniquement la lecture unique, indiquant que la lecture seule ne se lit uniquement, indiquant uniquement la lecture unique, indiquant unique Lire uniquement Lire, indiquant uniquement la lecture, indiquant que la lecture seule est lue.
Par conséquent, si un nombre négatif apparaît lors de la pagination, vérifiez si l'objet RecordSet est écrit comme le formulaire ci-dessus, et il doit être écrit:
Set rs = server.createObject (adodb.oldset)
Rs.OOPEN SQL, Conn, 1,3
Ce qui précède indique que le curseur est 1, qui peut avancer et vers l'arrière;
Selon la méthode ci-dessus, il n'y aura pas de problème, mais pour l'assurance, le principe de la pagination de la récréation est basé sur le nombre de dossiers après avoir lu tous les enregistrements, alors laissez la campagne rouler d'abord, ajouter ce qui suit après le niveau RS .PageSize = 10, ajoutez les suivants ci-dessous deux phrases:
Le curseur Rs.Movelast 'se déplace à la fin
Rs.MoveFirst 'Cursor se déplace vers le haut
Le principe de pagination de l'enregistrement est connu pour lire d'abord les enregistrements dans toute la base de données avant d'obtenir la valeur du Rs.RecordCount. Cette méthode de pagination est relativement simple, mais il y a un inconvénient fatal. dans la programmation réelle. Donnez maintenant une idée que vous pouvez faire une pagination dans l'instruction SQL Query.
Commencez par la brume de l'article M.
Sélectionner*
À partir de (selectTopn *
À partir de (selectTop (m + n-1) * à partir du nom de la table OrderByidDesc) T1) T2
OrderByidDesc
Avec les instructions SQL ci-dessus, les erreurs sont relativement faibles et la chose la plus importante est que l'efficacité est relativement élevée.