Sdílet prostřednictvím


SqlDataSource.CacheDuration Vlastnost

Definice

Získá nebo nastaví dobu v sekundách, že ovládací prvek zdroje dat ukládá data do mezipaměti, která je načtena metodou Select(DataSourceSelectArguments) .

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ý se SqlDataSource výsledky operace ukládají do Select(DataSourceSelectArguments) 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 Server a zobrazit je v ovládacím prvku GridView s povoleným ukládáním dat do mezipaměti. Hodnota CacheDuration je nastavená na 20 sekund, a protože CacheExpirationPolicy vlastnost je ve výchozím nastavení nastavená na Absolute hodnotu, 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. Při ukládání dat do mezipaměti Select metoda načítá data z mezipaměti, nikoli z podkladové databáze. Po vypršení platnosti Select mezipaměti metoda načte data z podkladové databáze a pak je znovu ukládá do mezipaměti.

Ovládací SqlDataSource prvek automaticky ukládá data do mezipaměti, když EnableCaching je vlastnost nastavena na true a CacheDuration vlastnost je nastavena na hodnotu větší než 0, což označuje počet sekund, po které mezipaměť ukládá data, než je položka mezipaměti zahozena. 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čtení dat, uchovává je v paměti maximálně po dobu určenou CacheDuration vlastností. Data se můžou uvolnit před uplynutím doby trvání, pokud je potřeba 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čtení dat, ale resetuje časové období, ve kterém je uložena mezipaměť pro každou další operaci. Platnost mezipaměti vyprší, pokud po dobu, která se rovná hodnotě CacheDuration 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 je také povoleno ukládání do mezipaměti.

Důležité

Pokud používáte zosobnění klienta v rámci ověřování Microsoft Systému Windows, data se ukládají do mezipaměti, když k datům přistupuje první uživatel. Pokud o stejná data požádá jiný uživatel, načtou se data z mezipaměti. Data se nenačtou dalším voláním databáze k ověření přístupu uživatele k datům. Pokud očekáváte, že k datům bude přistupovat více uživatelů a chcete, aby každé načtení dat bylo ověřeno konfigurací zabezpečení databáze, nepoužívejte ukládání do mezipaměti.

Platí pro

Viz také