SqlDataSource.EnableCaching Свойство

Определение

Возвращает или задает значение позволяющее определить, включено ли кэширование для элемента управления SqlDataSource.Gets or sets a value indicating whether the SqlDataSource control has data caching enabled.

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.true if data caching is enabled for the data source control; otherwise, false. Значение по умолчанию — false.The default is false.

Исключения

Для свойства EnableCaching задается значение true, если кэширование не поддерживается элементом управления SqlDataSource.The EnableCaching property is set to true when caching is not supported by the SqlDataSource.

Примеры

В следующем примере кода показано, как получить данные из базы данных Northwind в Microsoft SQL Server и отобразить их в GridView элементе управления с включенным кэшированием данных.The following code example demonstrates how to retrieve data from the Northwind database in Microsoft SQL Server and display it in a GridView control, with data caching enabled. Свойство имеет значение, а CacheDuration значение равно 20 секундам. true EnableCachingThe EnableCaching property is set to true and the CacheDuration is set to 20 seconds. Absolute Так как CacheExpirationPolicy свойство задано для поля по умолчанию, пользователи этой страницы будут видеть новые данные каждые 20 секунд.Because the CacheExpirationPolicy property is set to the Absolute field by default, users of this page will see fresh data every 20 seconds.

<%@ 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 Элемент управления поддерживает кэширование данных.The SqlDataSource control supports data caching. При кэшировании данных Select метод получает данные из кэша, а не из основной базы данных.While data is cached, the Select method retrieves data from the cache rather than from the underlying database. По истечении срока действия Select кэша метод получает данные из базовой базы данных, а затем кэширует их снова.When the cache expires, the Select method retrieves data from the underlying database, and then caches the data again.

Элемент управления автоматически кэширует true данные, EnableCaching когда свойству присвоено значение, CacheDuration а свойству присвоено больше 0, что указывает количество секунд, в течение которых кэш хранит данные, прежде чем получить SqlDataSource новый набор.The SqlDataSource control automatically caches data when the EnableCaching property is set to true and the CacheDuration property is set to a value greater than 0, which indicates the number of seconds that the cache stores data before retrieving a fresh set.

Важно!

При использовании олицетворения клиента при проверке подлинности Microsoft Windows данные кэшируются, когда первый пользователь обращается к данным.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Если другой пользователь запрашивает одни и те же данные, данные извлекаются из кэша.If another user requests the same data, the data is retrieved from the cache. Данные не извлекаются путем совершения другого обращения к базе данных для проверки доступа пользователя к данным.The data is not retrieved by making another call to the database to verify the user's access to the data. Если предполагается, что доступ к данным будет осуществляться более чем одним пользователем, и каждый из них должен быть проверен на наличие данных конфигураций безопасности для базы данных, не используйте кэширование.If you expect more than one user to access the data, and you want each retrieval to the data to be verified by the security configurations for the database, do not use caching.

Применяется к

Дополнительно