SqlDataSource.EnableCaching Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, указывающее, включен ли SqlDataSource элемент управления кэширование данных.
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
Значение свойства
true Значение , если кэширование данных включено для управления источниками данных; falseв противном случае . Значение по умолчанию — false.
Исключения
Свойство EnableCaching имеет true значение, если кэширование не поддерживается параметром SqlDataSource.
Примеры
В следующем примере кода показано, как получить данные из базы данных Northwind в Microsoft SQL Server и отобразить ее в элементе GridView управления с включенным кэшированием данных. Для EnableCaching свойства задано true значение, а CacheDuration для свойства задано значение 20 секунд.
CacheExpirationPolicy Так как свойство задано Absolute для поля по умолчанию, пользователи этой страницы будут видеть свежие данные каждые 20 секунд.
<%@ 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>
Комментарии
Элемент управления поддерживает кэширование SqlDataSource данных. Хотя данные кэшируются, Select метод извлекает данные из кэша, а не из базовой базы данных. После истечения срока действия Select кэша метод извлекает данные из базовой базы данных, а затем кэширует данные снова.
Элемент SqlDataSource управления автоматически кэширует данные, если EnableCaching свойство задано true , а CacheDuration свойство имеет значение больше 0, которое указывает количество секунд, в течение которых кэш сохраняет данные перед получением нового набора.
Это важно
При использовании олицетворения клиента при проверке подлинности Microsoft Windows данные кэшируются, когда первый пользователь обращается к данным. Если другой пользователь запрашивает те же данные, данные извлекаются из кэша. Данные не извлекаются, вызывая другую базу данных, чтобы проверить доступ пользователя к данным. Если вы ожидаете, что несколько пользователей будут получать доступ к данным, и вы хотите, чтобы каждое получение данных проверялось конфигурациями безопасности для базы данных, не используйте кэширование.