Programmimplementierungsfunktion: Paging-Anzeige von Daten in zwei Datentabellen.
Ich bin auf eine relativ seltene Anforderung gestoßen, daher möchte ich sie mit Ihnen teilen
: zwei Teile von Daten Die beiden Tabellen in der Datenbank werden als Datenbanken DB1 und DB2 sowie als Tabellen Tabelle1 und Tabelle2 definiert. Die Daten dieser beiden Tabellen sollten jeweils im oberen und unteren Teil der Seite angezeigt werden verwendet werden, z. B. der erste Teil der Daten, wird der zweite Teil der Daten in
'/*code*/
<%
Set objConn1=Server.CreateObject("ADODB.Recordset")
eingefügt.
Setze objConn2=Server.CreateObject("ADODB.Recordset")
objConn1.Open „PROVIDER=SQLOLEDB;DATA SOURCE=localhost;UID=sa;PWD=123;DATABASE=DB1“
objConn2.Open "PROVIDER=SQLOLEDB;DATA SOURCE=localhost;UID=sa;PWD=123;DATABASE=DB2"
Page=CLng(Request.QueryString("Page"))
if page="" dann
Seite=1
Ende wenn
StrSQL1="select * from Table1 order by ID desc"
StrSQL2="select * from Table2 order by ID desc"
record_count1=Clng(objConn1.execute(StrSQL1)(0)) 'Ermitteln Sie die Anzahl der Datensätze in der ersten Tabelle
record_count2=Clng(objConn2.execute(StrSQL2)(0))'Ruft die Anzahl der Datensätze in der zweiten Tabelle ab
record_count=record_count1+record_count2 'Ermitteln Sie die Anzahl der Datensätze in den beiden Tabellen und
wenn record_count>0, dann
page_size1=5 'Die Standardanzahl der angezeigten Teile der Daten in der ersten Tabelle pro Seite
page_size2=5 'Standardanzeigeanzahl der Teildaten in der zweiten Tabelle pro Seite
page_count1=CInt(record_count1/page_size1)
If (record_count1 Mod page_size1)<(page_size1/2) Then page_count1=page_count1+1 'Ruft die Seitenzahl des ersten Teils der Daten ab
page_count2=CInt(record_count2/page_size2)
If (record_count2 Mod page_size2)<(page_size2/2) Then page_count2=page_count2+1'Erhalten Sie die Seitenzahl des zweiten Teils der Daten.
if Cint(page_count2)=cint(page) then 'Angenommen, der zweite Teil der Daten muss kleiner sein, hier bestimmen Sie, ob die aktuelle Seite die letzte Seite mit weniger Daten ist
thepageRecordcount=record_count2-(page-1)*5 'Die Anzahl der Daten, die auf der letzten Seite des zweiten Teils der Daten angezeigt werden
page_size1=10-cint(thepageRecordcount) 'Die Anzahl der Elemente, die auf der letzten Seite des zweiten Teils des ersten Teils der Daten angezeigt werden'
page_size1=cint(thepageRecordcount) 'Ermitteln Sie die Anzahl der Elemente, die im ersten Teil dieser Seite angezeigt werden
elseif cint(page)>cint(page_count2) then 'Danach ist der gesamte erste Teil der Daten
page_size1=10
page_size2=0
end if
page_count=CInt(record_count/(page_size1+page_size2) 'Die Anzahl der Seiten in beiden Kategorien zusammen
If (record_count Mod (page_size1+page_size2))<((page_size1+page_size2)/2) Then page_count=page_count+1
If Page < 1 Then
Seite=1
Ende wenn
Wenn Seite > Seitenanzahl, dann
Seite = page_count
Ende, wenn
Pagefrom,Pageto dimmen
Seitevon=Seite-10
Pageto=page+10
wenn Pagefrom<1 dann
Seitevon=1
Ende wenn
if Pageto>record_count dann
Pageto=page_count
Ende wenn
Ende wenn
Wenn Seite<=1, dann 'Abfrage auf der ersten Seite anzeigen
StrSQL1="Wähle oben "&page_size1&" * aus Tabelle1 "
StrSQL1=StrSQL1&" Reihenfolge nach ID desc"
StrSQl2="Oben auswählen "&page_size1&" * Aus Tabelle2 "
StrSQL2=StrSQL2&" order by id desc"
Else 'Abfrage auf Seite N anzeigen
StrSQL1="Oben auswählen" &(Seite-1)*page_size1&" ID aus Tabelle1 "
StrSQL1=StrSQL1&" Sortieren nach ID Desc"
StrSQL1="SELECT Top 1 ID From ("&StrSQL1&") DERIVEDTBL Order By id "
'Response.Write(SQL)
id =Trim(objConn1.execute(StrSQL1)(0))
StrSQL1="Wählen Sie Top "&page_size1&" * aus Tabelle1 aus"
StrSQL1=StrSQL1&" wobei id<'"&id&"'"
StrSQL1=StrSQL1&" Sortieren nach ID Desc"
StrSQL2="Select Top "&(Page-1)*page_size2&" id From Table2 "
StrSQL2=StrSQL2&" Sortieren nach ID Desc"
StrSQL2="SELECT Top 1 id From ("&StrSQL2&") DERIVEDTBL Order By id "
id =Trim(objconn2.execute(StrSQL2)(0))
StrSQL2="Select Top "&page_size2&" * From Table2 "
StrSQL2=StrSQL2&" wobei id<'"&id &"'"
StrSQL2=StrSQL2&" Order By id Desc"
End If
%>
<%
Wenn record_count>0, dann
%>
<%
Setze Rs1=Server.CreateObject("Adodb.Recordset")
rs1.openStrSQL1,objconn1
Für n = 1 bis page_size1
Wenn rs1.Eof, dann beenden Sie For
%>
<!--Der erste Teil der angezeigten Inhaltsschleifen-->
<%
rs1.MoveNext
Wenn rs1.EOF, dann beenden Sie For
Nächste
rs1.close
setze rs1=nichts
%>
<%
Setze Rs2=Server.CreateObject("Adodb.Recordset")
rs2.openStrSQL2,objconn2
Für n = 1 bis page_size2
Wenn rs2.Eof, dann beenden Sie For
%>
<!--Der zweite Teil der angezeigten Inhaltsschleifen-->
<%
rs2.MoveNext
Wenn rs2.EOF, dann beenden Sie For
Nächste
rs2.close
setze rs2=nichts
%>
<!--Ergebnisseitennummer-->
<%if page<>"1" then%><a href=?page=<%=Cint(page-1)%>>Vorherige Seite</a> <%end if%>
<% 'Verwenden Sie eine for-Schleife, um die Seitenzahlverbindung auszuschreiben
Für i=Pagefrom to Pageto
wenn i=0 dann
i=1
end if
if i<>Cint(page) then
strurl="<a href=?page="&i&"><font color=#000000>"&i&"</font></a>"
sonst
strurl="<b><font color=#ce0031>"&i&"</font></b>"
end if
Response.write strurl
Antwort.write " "
nächste
%>
<%if page_count =1 oder (page_count-Cint(page))=0 dann
Antwort.Write("")
anders
Antwort.Schreiben Sie „<a href=?page="&Cint(page+1)&">Nächste Seite</a>“
Ende wenn
%>
<!--Ergebnisseitennummer-->
'/*Ende des Codes*/
Mein Niveau ist begrenzt, das Programm ist grob, es kann Mängel geben~Ich hoffe, Sie können mich kritisieren und korrigieren~