SqlDataSource.EnableCaching Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy kontrolka SqlDataSource ma włączoną 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 SqlDataSourceobiekt .
Przykłady
W poniższym przykładzie kodu pokazano, jak pobrać dane z bazy danych Northwind w Microsoft SQL Server i wyświetlić je w kontrolce z włączonym GridView 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 Absolute na pole, użytkownicy tej strony będą widzieć świeże 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 wygaśnie, Select 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 true
na , a CacheDuration właściwość jest ustawiona na wartość większą niż 0, co wskazuje liczbę sekund, w których pamięć podręczna przechowuje dane przed pobraniem nowego zestawu.
Ważne
Jeśli używasz personifikacji klienta w ramach uwierzytelniania microsoft Windows, dane są buforowane, gdy pierwszy użytkownik uzyskuje dostęp do danych. Jeśli inny użytkownik żą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 uzyskuje dostęp do danych i chcesz, aby każde pobieranie danych było weryfikowane przez konfiguracje zabezpieczeń bazy danych, nie używaj buforowania.