共用方式為


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

適用於

另請參閱