Partager via


SqlDataSource.CacheExpirationPolicy Propriété

Définition

Obtient ou définit le comportement d'expiration du cache qui, lorsqu'il est associé à la durée, décrit le comportement du cache utilisé par le contrôle de source de données.

public:
 virtual property System::Web::UI::DataSourceCacheExpiry CacheExpirationPolicy { System::Web::UI::DataSourceCacheExpiry get(); void set(System::Web::UI::DataSourceCacheExpiry value); };
public virtual System.Web.UI.DataSourceCacheExpiry CacheExpirationPolicy { get; set; }
member this.CacheExpirationPolicy : System.Web.UI.DataSourceCacheExpiry with get, set
Public Overridable Property CacheExpirationPolicy As DataSourceCacheExpiry

Valeur de propriété

Une des valeurs de l'objet DataSourceCacheExpiry. La valeur par défaut est la valeur Absolute.

Exemples

L’exemple de code suivant montre comment récupérer des données de la base de données Northwind dans Microsoft SQL Server et les afficher dans un GridView contrôle, avec la mise en cache des données activée. Étant donné que la CacheExpirationPolicy propriété est définie sur la Sliding valeur , les utilisateurs ne voient pas de données nouvelles même si la CacheDuration valeur est de 20 secondes. Les données mises en cache sont actualisées uniquement s’il n’y a aucune activité sur la page pendant plus de 20 secondes depuis le dernier chargement de la page.

<!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"
                CacheExpirationPolicy="Sliding"
                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>
<!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"
                CacheExpirationPolicy="Sliding"
                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>

Remarques

Le SqlDataSource contrôle prend en charge la mise en cache des données. Lorsque les données sont mises en cache, la Select méthode récupère les données du cache plutôt que de la base de données sous-jacente. Lorsque le cache expire, la Select méthode récupère les données de la base de données sous-jacente, puis les met à nouveau en cache.

Le comportement du cache est déterminé par une combinaison des CacheDuration paramètres et CacheExpirationPolicy . Si la CacheExpirationPolicy propriété est définie sur la Absolute valeur , le SqlDataSource met en cache les données lors de la première opération de récupération de données, les conserve en mémoire pendant la durée spécifiée par la CacheDuration propriété, puis les abandonne une fois le délai écoulé. Le cache est ensuite actualisé lors de l’opération suivante. Si la CacheExpirationPolicy propriété est définie sur la Sliding valeur , le contrôle de source de données met en cache les données lors de la première opération de récupération de données, mais réinitialise la fenêtre de temps dans laquelle il contient le cache pour chaque opération suivante. Le cache expire, s’il n’y a pas d’activité pendant une durée égale à la CacheDuration valeur depuis la dernière Select opération.

Le SqlDataSource contrôle peut mettre en cache les données uniquement lorsqu’il DataSet est en mode . Une NotSupportedException exception est levée par la Select méthode , si le SqlDataSource contrôle est défini sur la valeur et que la DataReader mise en cache est également activée.

Important

Lorsque vous utilisez l’emprunt d’identité client sous l’authentification Microsoft Windows, les données sont mises en cache lorsque le premier utilisateur accède aux données. Si un autre utilisateur demande les mêmes données, les données sont récupérées du cache. Les données ne sont pas récupérées en effectuant un autre appel à la base de données pour vérifier l’accès de l’utilisateur aux données. Si vous vous attendez à ce que plusieurs utilisateurs accèdent aux données et que vous souhaitez que chaque récupération des données soit vérifiée par les configurations de sécurité de la base de données, n’utilisez pas la mise en cache.

S’applique à

Voir aussi