程序的缓存生命周期相同。
l 同时对后台数据进行修改的时候,还需要对Cache进行相应的处理。
l 示例:使用数据缓存示例:
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html >
<script runat="server">
Sub Page_Load(ByVal Src As Object, ByVal E As EventArgs)
Dim Source As DataView
'' try to retrieve item from cache
'' if it''s not there, add it
Source = Cache("MyDataSet")
If Source Is Nothing Then
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter
MyConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("pubsConnectionString").ConnectionString)
MyCommand = New SqlDataAdapter("select * from Authors", MyConnection)
Dim ds As New DataSet
MyCommand.Fill (ds, "Authors")
Source = New DataView(ds.Tables("Authors"))
Cache("MyDataSet") = Source
CacheMsg.Text = "Dataset created explicitly"
Else
CacheMsg.Text = "Dataset retrieved from cache"
End If
MyGrid.DataSource = Source
MyGrid.DataBind()
End Sub
</script>
<body>
<form id="Form1" runat="server">
<h3>
<font face="Verdana">Caching Data</font></h3>
<asp:GridView ID="MyGrid" runat="server">
</asp:GridView>
<p>
<i>
<asp:Label ID="CacheMsg" runat="server" /></i>
</p>
</form>
</body>
</html >
4.SQl Cache
前面的例子中,我们使用的是缓存技术,一旦时间到,无论服务器端的数据是否改变都会释放缓存,下面介绍的例子,通过配置数据库连接池,只有当数据库数据被改变的时候,缓存才会改变。
示例:配置连接池示例
开一个DOS窗口->找到aspnet_regsql .exe工具(常用参数:-s指定我们注册的服务器-E使用Windows授权模式-D指定数据库DataBase名字-ED缓存生效)->
aspnet_regsql .exe –s “.SQLExPress” –E –d “pubs” –ed
aspnet_regsql .exe –s “.SQLExPress” –E –d “pubs” –et –t “authors”
<%@ OutputCache Duration = “999999” SqlDependency = “Pubs:Authors” VaryByParam = “none”%>
5.Cache Configuration
可以通过在webconfig里配置不同的缓存描述,在页面中调用该描述来减少重复定义缓存描述的工作量。
示例:缓存描述定义示例:
<configuration>
|