Partilhar via


SqlDataSource.EnableCaching Propriedade

Definição

Obtém ou define um valor que indica se o controle SqlDataSource tem o cache de dados habilitado.

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

Valor da propriedade

true se o cache de dados estiver habilitado para o controle de fonte de dados; caso contrário, false. O padrão é false.

Exceções

A propriedade EnableCaching está definida como true quando o SqlDataSource não dá suporte ao cache.

Exemplos

O exemplo de código a seguir demonstra como recuperar dados do banco de dados Northwind no Microsoft SQL Server e exibi-los em um GridView controle, com o cache de dados habilitado. A EnableCaching propriedade é definida como true e a CacheDuration é definida como 20 segundos. Como a propriedade é definida como o Absolute campo por padrão, os usuários desta página verão dados novos a CacheExpirationPolicy cada 20 segundos.

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

Comentários

O controle dá suporte ao SqlDataSource cache de dados. Embora os dados sejam armazenados em cache, o Select método recupera dados do cache em vez do banco de dados subjacente. Quando o cache expira, o Select método recupera dados do banco de dados subjacente e armazena os dados em cache novamente.

O SqlDataSource controle armazena automaticamente em cache os dados quando a EnableCaching propriedade é definida true como e a CacheDuration propriedade é definida como um valor maior que 0, o que indica o número de segundos que o cache armazena dados antes de recuperar um novo conjunto.

Importante

Quando você está usando a representação do cliente na autenticação do Microsoft Windows, os dados são armazenados em cache quando o primeiro usuário acessa os dados. Se outro usuário solicitar os mesmos dados, os dados serão recuperados do cache. Os dados não são recuperados fazendo outra chamada ao banco de dados para verificar o acesso do usuário aos dados. Se você espera que mais de um usuário acesse os dados e deseja que cada recuperação dos dados seja verificada pelas configurações de segurança do banco de dados, não use cache.

Aplica-se a

Confira também