緩衝技術是asp.net程式設計中非常實用的技術,也是大型web程式設計中比較常見的技術。本文就以執行個體形式對此加以說明。具體如下:
asp.net頁面的SqlCacheDependency Sql緩衝:
Cahce/SqlCachePage.aspx頁面代碼如下:
<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="SqlCachePage.aspx.cs" Inherits="Cahce_SqlCachePage" Title="頁的Sql緩衝" %><%@ OutputCache Duration="999999" SqlDependency="VS2005_Test:sqlcache" VaryByParam="none" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"><p>Duration="999999" SqlDependency="VS2005_Test:sqlcache" VaryByParam="none"<br />如果是SqlServer2005則改成SqlDependency="CommandNotification<br />注意設定檔中的配置</p><p><%=DateTime.Now %></p></asp:Content>
資料來源控制項的Sql緩衝:
Cahce/SqlCachePage.aspx頁面代碼如下:
<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="SqlCacheDataSourceControl.aspx.cs" Inherits="Cahce_SqlCacheDataSourceControl" Title="資料來源控制項的Sql緩衝" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"><p>DataSource控制項設定如下屬性:EnableCaching="True" SqlCacheDependency="VS2005_Test:sqlcache"CacheDuration="Infinite"<br />如果是SqlServer2005則改成SqlDependency="CommandNotification<br />注意設定檔中的配置</p><p><%=DateTime.Now %></p><p><asp:SqlDataSource ID="SqlDataSource1" runat="server" EnableCaching="True" SqlCacheDependency="VS2005_Test:sqlcache"CacheDuration="Infinite" ConnectionString="<%$ ConnectionStrings:SqlConnectionString %>"SelectCommand="SELECT * FROM [SqlCache]"></asp:SqlDataSource><asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AllowSorting="True"></asp:GridView></p></asp:Content>
web.config中的相關配置:
<connectionStrings><add name="SqlConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\VS2005_Test.mdf;Integrated Security=True;User Instance=True"providerName="System.Data.SqlClient" /></connectionStrings><system.web><caching><sqlCacheDependency enabled="true" pollTime="10000"><databases><add name="VS2005_Test" connectionStringName="SqlConnectionString" /></databases></sqlCacheDependency><!-- 如果是SqlServer2005的話,則只需如下設定,因為SqlServer支援基於通知的緩衝失效<sqlCacheDependency enabled="true" />--></caching></system.web>
注意:對於Sql Server 2005來說,基於通知的緩衝失效,不用aspnet_regsql設定,要設定屬性SqlDependency="CommandNotification"。在首次執行某 SQL 查詢之前,必須在應用程式某處調用 System.Data.SqlClient.SqlDependency.Start() 方法。此方法應放在 global.asax 檔案的 Application_Start() 事件中。
希望本文所述的緩衝技術對大家的asp.net程式設計有所協助。