SqlDataSource.CacheExpirationPolicy Właściwość

Definicja

Pobiera lub ustawia zachowanie wygasania pamięci podręcznej, które w połączeniu z czasem trwania opisuje zachowanie pamięci podręcznej używanej przez kontrolę źródła danych.

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

Wartość właściwości

DataSourceCacheExpiry

DataSourceCacheExpiry Jedna z wartości. Wartość domyślna Absolute to .

Przykłady

Poniższy przykład kodu przedstawia sposób pobierania danych z bazy danych Northwind w Microsoft SQL Server i wyświetlania ich w kontrolce GridView z włączonym buforowaniem danych. CacheExpirationPolicy Ponieważ właściwość jest ustawiona na Sliding wartość, użytkownicy nie będą widzieć nowych danych, mimo że CacheDuration wartość wynosi 20 sekund. Buforowane dane są odświeżane tylko wtedy, gdy nie ma aktywności na stronie przez ponad 20 sekund od ostatniego załadowania strony.

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

Uwagi

Kontrolka SqlDataSource obsługuje buforowanie danych. Gdy dane są buforowane, metoda pobiera dane z pamięci podręcznej, Select a nie z bazowej bazy danych. Gdy pamięć podręczna Select wygaśnie, metoda pobiera dane z bazowej bazy danych, a następnie ponownie buforuje dane.

Zachowanie pamięci podręcznej zależy od kombinacji CacheDuration ustawień i CacheExpirationPolicy . CacheExpirationPolicy Jeśli właściwość jest ustawiona na Absolute wartość, SqlDataSource buforuje dane w pierwszej operacji pobierania danych, przechowuje ją w pamięci przez czas określony przez CacheDuration właściwość, a następnie odrzuca je po upływie czasu. Pamięć podręczna jest następnie odświeżona podczas następnej operacji. CacheExpirationPolicy Jeśli właściwość jest ustawiona na Sliding wartość, kontrolka źródła danych buforuje dane w pierwszej operacji pobierania danych, ale resetuje przedział czasu, w ramach którego przechowuje pamięć podręczną dla każdej kolejnej operacji. Pamięć podręczna wygaśnie, jeśli nie ma aktywności przez czas równy CacheDuration wartości od ostatniej Select operacji.

Kontrolka SqlDataSource może buforować dane tylko wtedy, gdy jest w trybie DataSet . Wyjątek NotSupportedException jest zgłaszany przez metodę Select , jeśli kontrolka SqlDataSource jest ustawiona na DataReader wartość i buforowanie jest również włączone.

Ważne

W przypadku korzystania z personifikacji klienta w ramach uwierzytelniania microsoft Windows dane są buforowane, gdy pierwszy użytkownik uzyskuje dostęp do danych. Jeśli inny użytkownik zażąda tych samych danych, dane są pobierane z pamięci podręcznej. Dane nie są pobierane przez wykonanie innego wywołania bazy danych w celu zweryfikowania dostępu użytkownika do danych. Jeśli oczekujesz, że więcej niż jeden użytkownik będzie uzyskiwał dostęp do danych i chcesz, aby każde pobieranie danych było weryfikowane przez konfiguracje zabezpieczeń bazy danych, nie używaj buforowania.

Dotyczy

Zobacz też