SqlDataSource.CacheDuration Eigenschaft

Definition

Ruft die Zeitspanne in Sekunden ab, die das Datenquellen-Steuerelement zum Zwischenspeichern der von der Select(DataSourceSelectArguments)-Methode abgerufenen Daten benötigt, oder legt diese fest.Gets or sets the length of time, in seconds, that the data source control caches data that is retrieved by the Select(DataSourceSelectArguments) method.

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; }
member this.CacheDuration : int with get, set
Public Overridable Property CacheDuration As Integer

Eigenschaftswert

Die Anzahl von Sekunden, die die Ergebnisse eines SqlDataSource-Vorgangs von der Select(DataSourceSelectArguments) zwischengespeichert bleiben.The number of seconds that the SqlDataSource caches the results of a Select(DataSourceSelectArguments) operation. Der Standard ist 0.The default is 0. Der Wert kann nicht negativ sein.The value cannot be negative.

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Daten aus der Northwind-Datenbank in Microsoft SQL Server abgerufen und in einem GridView -Steuerelement angezeigt werden, wobei das Zwischenspeichern von Daten aktiviert ist.The following code example demonstrates how to retrieve data from the Northwind database in Microsoft SQL Server and display it in a GridView control, with data caching enabled. Die CacheDuration ist auf 20 Sekunden festgelegt, und die CacheExpirationPolicy -Eigenschaft wird standardmäßig Absolute auf den Wert festgelegt, sodass Benutzer dieser Seite alle 20 Sekunden neue Daten sehen.The CacheDuration is set to 20 seconds and, because the CacheExpirationPolicy property is set to the Absolute value by default, users of this page will see fresh data every 20 seconds.

<%@ 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>

Hinweise

Das SqlDataSource Steuerelement unterstützt das Zwischenspeichern von DatenThe SqlDataSource control supports data caching. Während die Daten zwischengespeichert werden Select , ruft die-Methode Daten aus dem Cache und nicht aus der zugrunde liegenden Datenbank ab.While data is cached, the Select method retrieves data from the cache rather than from the underlying database. Wenn der Cache abläuft, ruft Select die-Methode Daten aus der zugrunde liegenden Datenbank ab und speichert die Daten dann erneut.When the cache expires, the Select method retrieves data from the underlying database, and then caches the data again.

Das SqlDataSource -Steuerelement speichert Daten automatisch EnableCaching zwischen, wenn die true -Eigenschaft CacheDuration auf festgelegt ist und die-Eigenschaft auf einen Wert größer als 0 festgelegt ist. damit wird angegeben, wie viele Sekunden der Cache Daten vor dem Cache Eintrag speichert. wird verworfen.The SqlDataSource control automatically caches data when the EnableCaching property is set to true and the CacheDuration property is set to a value greater than 0, which indicates the number of seconds that the cache stores data before the cache entry is discarded. Der Wert 0 gibt einen unendlich langen Cache an.A value of 0 indicates an infinitely long cache.

Das Verhalten des Caches wird durch eine Kombination aus der Dauer und der CacheExpirationPolicy -Eigenschaft bestimmt.The behavior of the cache is determined by a combination of the duration and the CacheExpirationPolicy property. Wenn die CacheExpirationPolicy -Eigenschaft auf den Absolute -Wert festgelegt SqlDataSource ist, speichert die Daten beim ersten Datenabruf Vorgang zwischen und speichert Sie im Arbeitsspeicher, für den maximal die von CacheDuration der-Eigenschaft angegebene Zeitspanne.If the CacheExpirationPolicy property is set to the Absolute value, the SqlDataSource caches data on the first data retrieval operation, holds it in memory for, at most, the amount of time that is specified by CacheDuration property. Die Daten werden möglicherweise vor der Dauer freigegeben, wenn der Arbeitsspeicher erforderlich ist.The data might be released before the duration time, if the memory is required. Der Cache wird dann während des nächsten Vorgangs aktualisiert.The cache is then refreshed during the next operation. Wenn die CacheExpirationPolicy -Eigenschaft auf den Sliding -Wert festgelegt ist, speichert das Datenquellen-Steuerelement Daten beim ersten Datenabruf Vorgang zwischen, setzt aber das Zeitfenster, in dem der Cache für jeden nachfolgenden Vorgang enthalten ist, zurück.If the CacheExpirationPolicy property is set to the Sliding value, the data source control caches data on the first data retrieval operation, but resets the time window that it holds the cache for each subsequent operation. Der Cache läuft ab, wenn keine Aktivität für eine Zeit vorhanden ist, die gleich dem CacheDuration Wert seit dem letzten Select Vorgang ist.The cache expires, if there is no activity for a time that is equal to the CacheDuration value since the last Select operation.

Das SqlDataSource -Steuerelement kann Daten nur zwischenspeichern, DataSet wenn es sich im-Modus befindet.The SqlDataSource control can cache data only when it is in DataSet mode. Eine NotSupportedException -Ausnahme wird von der Select -Methode ausgelöst, SqlDataSource wenn das-Steuerelement DataReader auf den Wert festgelegt ist und Caching ebenfalls aktiviert ist.A NotSupportedException exception is thrown by the Select method, if the SqlDataSource control is set to the DataReader value and caching is also enabled.

Wichtig

Wenn Sie einen Client Identitätswechsel unter der Microsoft Windows-Authentifizierung verwenden, werden die Daten zwischengespeichert, wenn der erste Benutzer auf die Daten zugreift.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Wenn ein anderer Benutzer die gleichen Daten anfordert, werden die Daten aus dem Cache abgerufen.If another user requests the same data, the data is retrieved from the cache. Die Daten werden nicht durch einen weiteren Daten Bank Abruf abgerufen, um den Zugriff des Benutzers auf die Daten zu überprüfen.The data is not retrieved by making another call to the database to verify the user's access to the data. Wenn Sie davon ausgehen, dass mehr als ein Benutzer auf die Daten zugreifen muss und jeder Abruf der Daten durch die Sicherheits Konfigurationen für die Datenbank überprüft werden soll, sollten Sie die Zwischenspeicherung nicht verwenden.If you expect more than one user to access the data, and you want each retrieval to the data to be verified by the security configurations for the database, do not use caching.

Gilt für:

Siehe auch