为了缓解服务器压力,可以cache 赋值数据集,填充,代码如下
'显示数据列表 sqldb 是连接字符
Sub initgrid(ByVal Sqldb As SqlConnection, ByVal sname As String, ByVal tiaojian As String, ByVal isyes As Integer)
'使用缓存数据集
Dim cache As Cache = System.Web.HttpRuntime.Cache
Dim ds As New DataSet
ds = cache.Get("ds_cache")
Dim i As Integer
Dim oleset As New DataSet
Dim ptable As DataTable
Dim prows As DataRowCollection
Dim prow As DataRow
Dim sout As String
Dim sret As String
Dim sql As String
If isyes = 1 Then
sql = "select * from tabuser"
Else
If sname = "" Then
sql = "select * from tabuser"
Else
If tiaojian = "id" Then
sql = "select * from tabuser where id=" & Trim(sname)
ElseIf tiaojian = "Email" Then
sql = "select * from tabuser where email='" & Trim(sname) & "'"
Else
sql = "select * from tabuser"
End If
End If
End If
sql = sql & " ORDER BY ID DESC"
'判断缓存是否为空
If ds Is Nothing Then
'如果缓存数据集为空,则重新填充
Dim adap As New SqlDataAdapter(sql, Sqldb)
adap.Fill(oleset, "list")
oleset.ExtendedProperties.Add("ds_t1", DateTime.Now.ToLongTimeString())
'填充cache,名字为ds_cache,过期时间为30秒
cache.Insert("ds_cache", oleset, Nothing, DateTime.Now.AddSeconds(30), TimeSpan.Zero)
Response.Write("缓存数据集已经填充<br>")
Response.Write("这里不是缓存数据集")
ptable = oleset.Tables(0)
Else
Response.Write("这里是缓存数据集")
ptable = ds.Tables(0)
End If
Dim pagesize As Integer = 200
Dim reccount As Integer = ptable.Rows.Count
Dim pagecount As Integer = reccount / pagesize
If pagecount \ pagesize > 0 Then
pagecount = pagecount + 1
End If
Dim npage As Integer = Request.QueryString("page")
If npage < 1 Then
npage = 1
End If
Dim nstart As Integer
Dim nend As Integer
If npage = 1 Then nstart = 0 Else nstart = (npage - 1) * pagesize
nend = nstart + pagesize - 1
sout = "<table width=100% cellspacing=1 cellpadding=0 border=0 bgcolor=#336699>"
sout = sout & "<tr bgcolor=#f1f1f1 align=center height=32>"
sout = sout & "<td align=center width='5%'><b>序列</b></td>"
sout = sout & "<td align=center width='5%'><b>用户ID</b></td>"
sout = sout & "<td width='25%'><b>Email</b></td>"
sout = sout & "<td width='15%'><b>pass</b></td>"
sout = sout & "<td width='10%'><b>Time</b></td>"
sout = sout & "<td width='15%'><b>Country</b></td>"
sout = sout & "<td width='10%'><b>Message</b></td>"
sout = sout & "<td width='10%'><b>编辑</b></td>"
sout = sout & "<td width='15%'><b>删除</b></td>"
sout = sout & "</tr>"
prows = ptable.Rows
Dim c As Integer = 0
For i = nstart To nend
If i > reccount - 1 Then Exit For
prow = prows.Item(i)
sout = sout & "<tr height=28 bgcolor='"
If i Mod 2 = 1 Then sout = sout & "#f6f6f6'>" Else sout = sout & "#FFFFFF'>"
sout = sout & " <td> " & i & "</td>"
sout = sout & " <td> " & prow.Item("id") & "</td>"
sout = sout & " <td> " & prow.Item("email") & "</td>"
sout = sout & " <td> " & prow.Item("pass") & "</td>"
sout = sout & " <td> " & prow.Item("reg_time") & "</td>"
Dim getcountry As New myPubFunc
Dim guojia As Integer = prow.Item("country_id")
Dim guojianame As String
Dim smessage As String
guojianame = getcountry.GetDepartNameByCode(Sqldb, guojia)
sout = sout & " <td> " & guojianame & "</td>"
smessage = "javascript:gotourl('send_message.aspx?mode=2&id=" & prow.Item("id") & "','',500,380,'',false);"
sout = sout & "<td align=center ><a href=""" & smessage & """><IMG src='images/email.gif' align='baseline' border=0></a></td>"
sret = "javascript:gotourl('user_show.aspx?mode=2&id=" & prow.Item("id") & "','',500,500,'',false);"
sout = sout & "<td align=center ><a href=""" & sret & """><IMG src='images/edit.png' align='baseline' border=0></a></td>"
sout = sout & "<td align=center> <a οnclick=""javascript:return confirm('您确定删除吗?一旦删除将无法恢复!')"" href='user_manage.aspx?mode=del&id=" & prow.Item("id") & "'><img src=images/DROP.PNG border=0></a></td>"
Next
sout = sout & "</tr>"
sout = sout & "<tr bgcolor=#f1f1f1 align=center height=32>"
sout = sout & "<td align=center width=100% colspan='9'><b>"
For i = 1 To 10
sout = sout & "<a href='user_manage.aspx?page=" & i & "&tiaojian=" & tiaojian & "&sname=" & sname & "s=0'>" & i & " </a>"
Next
sout = sout & "</b>总共 " & reccount & "个</td></tr>"
sout = sout & "</table>"
listgrid.Text = sout
End Sub