Pour créer une application Web, la fonction de navigation de pagination est essentielle. Ce problème est très courant dans le traitement de la base de données. En fait, cette méthode de pagination ne s'applique qu'à une petite quantité de données. Suivons l'éditeur de la mauvaise chaîne de nouvelles technologies pour en savoir plus!
Source des idées:
Sortez des enregistrements de la NTH à la MTH de Publish Table:
Sélectionnez Top M-N + 1 *
De publier
Où (je ne suis pas dans
(Sélectionnez Top N-1 ID
De publier))
Ce qui suit est la procédure stockée:
La copie de code est la suivante:Créer la pagination de la procédure3
@tblname varchar (255), - nom de table
@strgetFields varchar (1000) = '*', - colonnes à retourner
@fldname varchar (255) = '', - Triez le nom du champ
@PageSize int = 10, - Taille de la page
@PageIndex int = 1, - numéro de page
@DoCount bit = 0, - Renvoie le nombre total d'enregistrements, renvoie si une valeur n'est pas 0
@OrderType bit = 0, - définir le type de tri, et si la valeur n'est pas 0, commande descendant
@strwhere varchar (1500) = '' - Conditions de requête (Remarque: N'ajoutez pas où)
COMME
Déclarer @strsql VARCHAR (5000) - Énoncé du sujet
Declare @strtmp varchar (110) - variable temporaire
Declare @Strorder Varchar (400) - Type de tri
Si @DoCount! = 0
Commencer
Si @strwhere! = ''
Définissez @Strsql = 'SELECT COUNT (*) comme total dans [' + @tblname + '] où' + @ Strwhere
autre
set @strsql = 'select count (*) comme total dans [' + @tblname + ']'
fin
- Le code ci-dessus signifie que si le @DoCount passe n'est pas 0, le nombre total sera exécuté. Tous les codes suivants sont des cas où @Docount est 0:
autre
Commencer
Si @OrderType! = 0
Commencer
set @strtmp = '<(sélectionnez min'
set @StRorder = 'Order par [' + @fldname + '] desc'
- Si @OrderType n'est pas 0, puis effectuez l'ordre descendant. Cette phrase est très importante!
fin
autre
Commencer
set @strtmp = '> (sélectionnez Max'
set @StRorder = 'Order par [' + @fldname + '] ASC'
fin
Si @PageIndex = 1
Commencer
Si @strwhere! = ''
set @strsql = 'select top' + str (@PageSize) + '' + @ strGetFields + 'From [' + @tblname + '] où' + @strwhere + '' + @Ststrorder
autre
SET @STRSQL = 'SELECT TOP' + str (@PageSize) + '' + @ StrGetFields + 'From [' + @tblname + ']' + @StRorder
- Si c'est la première page, exécutez le code ci-dessus, qui accélérera la vitesse d'exécution
fin
autre
Commencer
set @strsql = 'select top' + str (@PageSize) + '' + @ strGetfields + 'from ['
+ @tblname + '] où [' + @fldname + ']' + @strtmp + '(['
+ @fldname + ']) From (Sélectionner le top' + str ((@ pageIndex-1) * @ pagesize) + '['
+ @fldname + '] de [' + @tblname + ']' + @StRorder + ') comme tbltmp)'
+ @Strorder
Si @strwhere! = ''
set @strsql = 'select top' + str (@PageSize) + '' + @ strGetfields + 'from ['
+ @tblname + '] où [' + @fldname + ']' + @strtmp + '(['
+ @fldname + ']) From (Sélectionner le top' + str ((@ pageIndex-1) * @ pagesize) + '['
+ @fldname + '] de [' + @tblname + '] où' + @strwhere + ''
+ @StRorder + ') comme tbltmp) et' + @strwhere + '' + @StRorder
fin
fin
exec (@strsql)
--print @strsql
ALLER
Grâce au contenu introduit par le rédacteur en chef du canal de la nouvelle technologie, je crois que tout le monde a une certaine compréhension. Si vous voulez en savoir plus de contenu technique, continuez à prêter attention à la chaîne New Technology 未分!