Exporter (0) Imprimer
Développer tout

SqlDataSource.CacheExpirationPolicy, propriété

Remarque : cette propriété est nouvelle dans le .NET Framework version 2.0.

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.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public virtual DataSourceCacheExpiry CacheExpirationPolicy { get; set; }
/** @property */
public DataSourceCacheExpiry get_CacheExpirationPolicy ()

/** @property */
public void set_CacheExpirationPolicy (DataSourceCacheExpiry value)

public function get CacheExpirationPolicy () : DataSourceCacheExpiry

public function set CacheExpirationPolicy (value : DataSourceCacheExpiry)

Valeur de la propriété

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

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

Le comportement du cache est déterminé par une combinaison des paramètres CacheDuration et CacheExpirationPolicy. Si la propriété CacheExpirationPolicy a la valeur Absolute, SqlDataSource met les données en cache lors de la première opération de récupération de données, les garde en mémoire pour la durée spécifiée par la propriété CacheDuration, puis les ignore une fois la durée écoulée. Puis, le cache est actualisé pendant l'opération suivante. Si la propriété CacheExpirationPolicy a la valeur Sliding, le contrôle de source de données met en cache des données lors de la première opération de récupération de données, mais réinitialise la fenêtre de temps dont il contient le cache pour chaque opération suivante. Le cache expire en cas d'inactivité pendant une période égale à la valeur CacheDuration depuis la dernière opération Select.

Le contrôle SqlDataSource peut mettre des données en cache uniquement en mode DataSet. Si le contrôle SqlDataSource a la valeur DataReader, une exception NotSupportedException est levée par la méthode Select et la mise en cache est activée.

Remarque de sécuritéRemarque de sécurité

Lorsque vous utilisez l'emprunt d'identité du client dans le cadre de 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, elles 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 prévoyez que plusieurs utilisateurs accèdent aux données et souhaitez que chaque récupération de 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.

L'exemple de code suivant illustre comment récupérer des données de la base de données Northwind dans Microsoft SQL Server et les afficher dans un contrôle GridView, avec la mise en cache de données activée. La propriété CacheExpirationPolicy ayant la valeur Sliding, les utilisateurs ne consulteront pas de données actualisées même si la valeur CacheDuration est égale à 20 secondes. Les données en mémoire cache sont actualisées uniquement en cas d'inactivité de 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>
    <BODY>
        <FORM 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>
    <BODY>
        <FORM runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
                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>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft