Para o fenômeno de números negativos durante a paginação de registros, acredito que muitas pessoas encontraram esse problema e, às vezes, o Baidu e o Google não estão intrigados.
Um número negativo está relacionado principalmente ao tipo de cursor. (Por exemplo, é conveniente, assumindo que já existe um arquivo do banco de dados Conn.asp Link e ele foi incluído.) Agora, um exemplo é o seguinte:
Sql = selecione * da tabela onde as condições ordenam por id des aqui pode ser reescrito de acordo com suas necessidades
Definir rs = const.execute (sql) '=== Observe esta frase ===
Rs.pagesize = 10 '=== Defina o número de registros por página é 10 ===
Página = request.QueryString (página)
Se página = então página = 1
Se não é numérico (página) então página = 1
Página = clng (página)
Se página <1 a página = 1
Se página> rs.PagEcount That = VRS.Pagecount
rs.absolutePage = página
dim c
C = 1
Faça, embora não seja Rs.eof e C <= Rs.Pagecount
'Conteúdo de saída
C = C+1
rs.movenext
Laço
'Faça um link de página
De acordo com o código acima, o objeto RecordSet é diretamente pelo código: defina rs = Conn.Execute (SQL). E o tipo de bloqueio é 0, indicando que apenas a leitura lê apenas, indicando apenas a leitura de leitura, indicando apenas a leitura de leitura, indicando que apenas a leitura só lê Indicando apenas a leitura de leitura apenas, indicando que apenas a leitura é leitura apenas, indicando apenas a leitura de leitura, indicando apenas a leitura de leitura, indicando que apenas a leitura é apenas leitura, indicando apenas a leitura apenas lendo, indicando que apenas a leitura é apenas lida, indicando apenas indicando Ler apenas leia, indicando apenas a leitura, indicando que apenas a leitura é apenas leitura.
Portanto, se um número negativo aparecer durante a paginação, verifique se o objeto RecordSet é escrito como o formulário acima e deve ser escrito:
Set rs = server.createObject (adodb.oldset)
Rs.ooopen SQL, Conn, 1,3
O acima indica que o cursor é 1, que pode seguir em frente e para trás;
De acordo com o método acima, não haverá problema, mas para o seguro, o princípio da paginação do Recionet é baseado no número de registros depois de ler todos os registros, então deixe a campanha rolar primeiro, adicione o seguinte após o nível RS .Pagesize = 10, adicione o seguinte abaixo de duas frases:
O cursor Rs.movelast se move para o fim
Rs.movefirst 'Cursor se move para o topo
Sabe -se que o princípio da paginação do RecordSet leia os registros em todo o banco de dados antes de obter o valor do Rs.RecordCount. Esse método de paginação é relativamente simples, mas há uma desvantagem fatal. na programação real. Agora, dê uma idéia de que você pode fazer a paginação na declaração de consulta SQL.
Comece da névoa do artigo M.
Selecione*
De (selectTopn*
De (selectTop (M+N-1)*da tabela Nome OrderByidDesc) T1) T2
OrderByidDesc
Com as declarações SQL acima, os erros são relativamente pequenos, e o mais importante é que a eficiência é relativamente alta.