Sdílet prostřednictvím


SqlDataSource.CacheDuration Vlastnost

Definice

Získá nebo nastaví dobu v sekundách, po kterou ovládací prvek zdroje dat ukládá data, která jsou 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 Select(DataSourceSelectArguments) operace ukládají 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 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. Když jsou data uložená v mezipaměti, Select metoda načítá data z mezipaměti, nikoli z podkladové databáze. Když platnost mezipaměti vyprší, Select 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 hodnotu a CacheDuration vlastnost je nastavena na hodnotu větší než 0, což označuje počet sekund, 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 po dobu určenou CacheDuration vlastností. Data můžou být uvolněna 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é okno, ve kterém uchovává 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 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 o stejná data požádá jiný uživatel, načtou se data z mezipaměti. Data se nenačtou jiným voláním databáze za účelem 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é