SqlDataSource.CacheExpirationPolicy 屬性

定義

取得或設定快取到期行為,當與持續期間搭配使用時,用來描述資料來源控制項所使用的快取行為。

public:
 virtual property System::Web::UI::DataSourceCacheExpiry CacheExpirationPolicy { System::Web::UI::DataSourceCacheExpiry get(); void set(System::Web::UI::DataSourceCacheExpiry value); };
public virtual System.Web.UI.DataSourceCacheExpiry CacheExpirationPolicy { get; set; }
member this.CacheExpirationPolicy : System.Web.UI.DataSourceCacheExpiry with get, set
Public Overridable Property CacheExpirationPolicy As DataSourceCacheExpiry

屬性值

DataSourceCacheExpiry

其中一個 DataSourceCacheExpiry 值。 預設值為 Absolute 值。

範例

下列程式碼範例示範如何在 Microsoft SQL Server 中從 Northwind 資料庫擷取資料,並在控制項中 GridView 顯示資料,並啟用資料快取。 CacheExpirationPolicy由於 屬性設定為 Sliding 值,即使 CacheDuration 值為 20 秒,使用者也不會看到全新的資料。 只有在上次載入頁面之後,頁面上沒有活動超過 20 秒時,才會重新整理快取的資料。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                CacheExpirationPolicy="Sliding"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource1">
                <columns>
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                    <asp:BoundField HeaderText="Title" DataField="Title" />
                </columns>
            </asp:GridView>

        </form>
    </body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                CacheExpirationPolicy="Sliding"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource1">
                <columns>
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                    <asp:BoundField HeaderText="Title" DataField="Title" />
                </columns>
            </asp:GridView>

        </form>
    </body>
</html>

備註

控制項 SqlDataSource 支援資料快取。 快取資料時, Select 方法會從快取擷取資料,而不是從基礎資料庫擷取資料。 當快取過期時, Select 方法會從基礎資料庫擷取資料,然後再次快取資料。

快取的行為取決於 和 CacheExpirationPolicy 設定的組合 CacheDurationCacheExpirationPolicy如果屬性設定為 Absolute 值,則會 SqlDataSource 在第一個資料擷取作業上快取資料、將它保留于屬性所 CacheDuration 指定時間的記憶體中,然後在時間結束時捨棄它。 接著會在下一個作業期間重新整理快取。 CacheExpirationPolicy如果 屬性設定為 Sliding 值,資料來源控制項會在第一個資料擷取作業上快取資料,但會重設它針對每個後續作業保留快取的時間範圍。 如果上次作業之後 Select 的值等於 CacheDuration 值,快取就會過期。

只有在模式中時,控制項 SqlDataSource 才能快取 DataSet 資料。 NotSupportedException如果 SqlDataSource 控制項設定為 DataReader 值,而且也啟用快取,方法就會擲回 Select 例外狀況。

重要

當您在 Microsoft Windows 驗證下使用用戶端模擬時,資料會在第一位使用者存取資料時快取。 如果另一位使用者要求相同的資料,則會從快取擷取資料。 不會透過對資料庫進行另一個呼叫來擷取資料,以驗證使用者對資料的存取權。 如果您預期有多個使用者存取資料,而且您希望每個擷取到資料庫的安全性組態驗證資料,請勿使用快取。

適用於

另請參閱