缓存cache 填充dataset

为了缓解服务器压力,可以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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值