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 данные кэшируются, когда первый пользователь обращается к данным. Если другой пользователь запрашивает те же данные, данные извлекаются из кэша. Данные не извлекаются путем другого вызова базы данных для проверки доступа пользователя к данным. Если предполагается, что доступ к данным будет осуществляться несколькими пользователями и требуется, чтобы каждый извлечение данных проверялся с помощью конфигураций безопасности базы данных, не используйте кэширование.