SqlDataSource.CacheExpirationPolicy Eigenschaft

Definition

Ruft das Cacheablaufverhalten ab, das in Kombination mit der Dauer das Verhalten des vom Datenquellen-Steuerelement verwendeten Caches beschreibt.

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

Eigenschaftswert

DataSourceCacheExpiry

Einer der DataSourceCacheExpiry-Werte. Der Standardwert ist der Absolute-Wert.

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 die Datenspeicherung aktiviert ist. Da die CacheExpirationPolicy Eigenschaft auf den Sliding Wert festgelegt ist, werden Benutzer keine frischen Daten angezeigt, obwohl der CacheDuration Wert 20 Sekunden beträgt. Die zwischengespeicherten Daten werden nur aktualisiert, wenn es seit dem letzten Laden der Seite keine Aktivität gibt.

<!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>

Hinweise

Das Steuerelement unterstützt die SqlDataSource Datenspeicherung. Während Daten zwischengespeichert werden, ruft die Select Methode Daten aus dem Cache und nicht aus der zugrunde liegenden Datenbank ab. Wenn der Cache abläuft, ruft die Select Methode Daten aus der zugrunde liegenden Datenbank ab, und cachet dann die Daten erneut.

Das Verhalten des Caches wird durch eine Kombination der Einstellungen und CacheExpirationPolicy Einstellungen CacheDuration bestimmt. Wenn die CacheExpirationPolicy Eigenschaft auf den Absolute Wert festgelegt ist, speichert die SqlDataSource Daten des ersten Datenabrufvorgangs im Arbeitsspeicher für die Von der CacheDuration Eigenschaft angegebene Zeit, und verwerfen sie dann, nachdem die Zeit abgelaufen ist. Der Cache wird dann während des nächsten Vorgangs aktualisiert. Wenn die Eigenschaft auf den Wert festgelegt ist, zwischengespeichert die CacheExpirationPolicy Datenquellensteuerung Daten für den Sliding ersten Datenabrufvorgang, setzt aber das Zeitfenster zurück, das sie für jeden nachfolgenden Vorgang zwischengespeichert hat. Der Cache läuft ab, wenn seit dem letzten Select Vorgang keine Aktivität vorhanden ist, die dem CacheDuration Wert entspricht.

Das SqlDataSource Steuerelement kann Daten nur DataSet im Modus zwischenspeichern. Eine NotSupportedException Ausnahme wird von der Select Methode ausgelöst, wenn das SqlDataSource Steuerelement auf den DataReader Wert festgelegt ist und die Zwischenspeicherung ebenfalls aktiviert ist.

Wichtig

Wenn Sie clientwechseln unter Microsoft Windows-Authentifizierung verwenden, werden die Daten zwischengespeichert, wenn der erste Benutzer auf die Daten zugreift. Wenn ein anderer Benutzer dieselben Daten anfordert, wird die Daten aus dem Cache abgerufen. Die Daten werden nicht abgerufen, indem sie einen anderen Aufruf an die Datenbank vornehmen, um den Zugriff des Benutzers auf die Daten zu überprüfen. Wenn Sie erwarten, dass mehr als ein Benutzer auf die Daten zugreifen kann, und sie möchten, dass die Daten von den Sicherheitskonfigurationen für die Datenbank überprüft werden, nicht die Zwischenspeicherung verwenden.

Gilt für

Siehe auch