Sdílet prostřednictvím


SqlDataSource.CacheDuration Vlastnost

Definice

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.

Platí pro

Viz také