Exporter (0) Imprimer
Développer tout

SqlDataSource.CacheDuration, propriété

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

Obtient ou définit la durée, en secondes, de la mise en cache des données par le contrôle de source de données avant que celles-ci soient récupérées par la méthode Select.

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

public virtual int CacheDuration { get; set; }
/** @property */
public int get_CacheDuration ()

/** @property */
public void set_CacheDuration (int value)

public function get CacheDuration () : int

public function set CacheDuration (value : int)

Valeur de la propriété

Nombre de secondes durant lesquelles SqlDataSource met en cache les résultats d'une opération Select. La valeur par défaut est 0. La valeur ne peut pas être négative.

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 contrôle SqlDataSource met automatiquement en cache des données lorsque la propriété EnableCaching a la valeur true, et que la valeur de la propriété CacheDuration est supérieure à 0, indiquant le nombre de secondes pendant lesquelles le cache stocke les données avant que l'entrée du cache ne soit ignorée. Une valeur de 0 indique un cache infiniment long.

Le comportement du cache est déterminé en combinant sa durée et la propriété CacheExpirationPolicy. Si la propriété CacheExpirationPolicy a la valeur Absolute, SqlDataSource met en cache des données lors de la première opération de récupération de données, les garde en mémoire pour, au plus, la durée spécifiée par la propriété CacheDuration. Les données peuvent être supprimées avant le délai d'expiration si la mémoire est requise. 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. CacheDuration a la valeur 20 secondes et, la propriété CacheExpirationPolicy ayant la valeur Absolute par défaut, les utilisateurs de cette page consulteront des données actualisées toutes les 20 secondes.

<%@ Page language="CS" %>

<!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"
                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"
                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
Afficher:
© 2014 Microsoft