Udostępnij za pośrednictwem


SqlDataSource.EnableCaching Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy kontrolka SqlDataSource ma włączone buforowanie danych.

public:
 virtual property bool EnableCaching { bool get(); void set(bool value); };
public virtual bool EnableCaching { get; set; }
member this.EnableCaching : bool with get, set
Public Overridable Property EnableCaching As Boolean

Wartość właściwości

true jeśli buforowanie danych jest włączone dla kontroli źródła danych; w przeciwnym razie , false. Wartość domyślna to false.

Wyjątki

Właściwość EnableCaching jest ustawiana na true wartość , gdy buforowanie nie jest obsługiwane przez element SqlDataSource.

Przykłady

Poniższy przykład kodu przedstawia sposób pobierania danych z bazy danych Northwind w programie Microsoft SQL Server i wyświetlania ich w kontrolce GridView z włączonym buforowaniem danych. Właściwość jest ustawiona EnableCaching na true , a właściwość jest ustawiona CacheDuration na 20 sekund. CacheExpirationPolicy Ponieważ właściwość jest domyślnie ustawiona na Absolute pole, użytkownicy tej strony będą widzieć nowe dane co 20 sekund.

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

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.

Kontrolka SqlDataSource automatycznie buforuje dane, gdy EnableCaching właściwość jest ustawiona na true , a CacheDuration właściwość jest ustawiona na wartość większą niż 0, co wskazuje liczbę sekund przechowywania danych przez pamięć podręczną przed pobraniem nowego zestawu.

Ważne

W przypadku korzystania z personifikacji klienta w ramach uwierzytelniania systemu 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ż