SqlDataSource.CacheDuration Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví dobu v sekundách, že řízení zdrojů dat ukládá data načtená metodou Select(DataSourceSelectArguments) do mezipaměti.
public:
virtual property int CacheDuration { int get(); void set(int value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))]
public virtual int CacheDuration { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))>]
member this.CacheDuration : int with get, set
Public Overridable Property CacheDuration As Integer
Hodnota vlastnosti
Počet sekund, po které SqlDataSource ukládá výsledky Select(DataSourceSelectArguments) operace do mezipaměti. Výchozí hodnota je 0. Hodnota nemůže být záporná.
- Atributy
Příklady
Následující příklad kódu ukazuje, jak načíst data z databáze Northwind v Microsoft SQL Serveru a zobrazit je v ovládacím prvku s povolenou GridView ukládáním dat do mezipaměti. Je CacheDuration nastavena na 20 sekund a protože CacheExpirationPolicy vlastnost je nastavena na Absolute hodnotu ve výchozím nastavení, uživatelé této stránky uvidí nová data každých 20 sekund.
<%@ 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>
Poznámky
Ovládací SqlDataSource prvek podporuje ukládání dat do mezipaměti. Zatímco jsou data uložená v mezipaměti, Select metoda načítá data z mezipaměti místo z podkladové databáze. Po vypršení Select platnosti mezipaměti metoda načte data z podkladové databáze a potom data znovu ukládá do mezipaměti.
Ovládací SqlDataSource prvek automaticky ukládá data do mezipaměti, když EnableCaching je vlastnost nastavena true a CacheDuration vlastnost je nastavena na hodnotu větší než 0, což označuje počet sekund, po které mezipaměť ukládá data před zahozením položky mezipaměti. Hodnota 0 označuje nekonečně dlouhou mezipaměť.
Chování mezipaměti je určeno kombinací doby trvání a CacheExpirationPolicy vlastnosti. CacheExpirationPolicy Pokud je vlastnost nastavena na Absolute hodnotu, SqlDataSource ukládá data do mezipaměti při první operaci načítání dat, uchovává je v paměti maximálně po dobu určenou CacheDuration vlastností. Data mohou být vydána před dobou trvání, pokud je vyžadována paměť. Mezipaměť se pak aktualizuje během další operace. CacheExpirationPolicy Pokud je vlastnost nastavena na Sliding hodnotu, ovládací prvek zdroje dat ukládá data do mezipaměti při první operaci načítání dat, ale resetuje časové okno, které obsahuje mezipaměť pro každou další operaci. Platnost mezipaměti vyprší, pokud po dobu, která se rovná CacheDuration hodnotě od poslední Select operace, neexistuje žádná aktivita.
Ovládací SqlDataSource prvek může ukládat data do mezipaměti pouze v DataSet režimu. Metoda NotSupportedException vyvolá Select výjimku, pokud SqlDataSource je ovládací prvek nastaven na DataReader hodnotu a ukládání do mezipaměti je také povoleno.
Důležité
Pokud používáte zosobnění klienta v rámci ověřování systému Microsoft Windows, data se ukládají do mezipaměti, když k datům přistupuje první uživatel. Pokud jiný uživatel požádá o stejná data, data se načtou z mezipaměti. Data se nenačtou dalším voláním databáze, aby ověřila přístup uživatele k datům. Pokud očekáváte, že k datům přistupuje více než jeden uživatel a chcete, aby každé načtení dat ověřilo konfigurace zabezpečení pro databázi, nepoužívejte ukládání do mezipaměti.