SqlDataSource.EnableCaching 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,指出 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 驗證下使用用戶端模擬時,數據會在第一位使用者存取數據時快取。 如果其他使用者要求相同的數據,則會從快取擷取數據。 不會透過對資料庫進行另一個呼叫來擷取數據,以驗證使用者對數據的存取權。 如果您預期有多個使用者存取數據,而且您希望每個擷取到資料庫的安全性組態驗證數據,請勿使用快取。