SqlDataSource.EnableCaching 屬性

定義

取得或設定值,指出 SqlDataSource 控制項是否啟用了資料快取。

public:
 virtual property bool EnableCaching { bool get(); void set(bool value); };
public virtual bool EnableCaching { get; set; }
member this.EnableCaching : bool with get, set
Public Overridable Property EnableCaching As Boolean

屬性值

如果啟用了資料來源控制項的資料快取則為 true,否則為 false。 預設為 false

例外狀況

EnableCaching 不支援快取時,SqlDataSource 屬性會設為 true

範例

下列程式碼範例示範如何在 Microsoft SQL Server 中從 Northwind 資料庫擷取資料,並在控制項中 GridView 顯示資料,並啟用資料快取。 屬性 EnableCaching 設定為 true ,且 CacheDuration 設定為 20 秒。 CacheExpirationPolicy由於 屬性預設會設定為 Absolute 欄位,因此此頁面的使用者每隔 20 秒就會看到全新的資料。

<%@ Page language="C#" %>

<!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"
                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>
<%@ Page language="VB" %>

<!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"
                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 方法會從基礎資料庫擷取資料,然後再次快取資料。

當 屬性設定 true 為 且 CacheDuration 屬性設定為大於 0 的值時 EnableCaching ,控制項 SqlDataSource 會自動快取資料,這表示快取在擷取新集合之前儲存資料的秒數。

重要

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

適用於

另請參閱