SqlDataSource.CacheDuration Propriedade

Definição

Obtém ou define a duração, em segundos, em que o controle de fonte de dados armazena em cache os dados recuperados pelo método Select(DataSourceSelectArguments).

public:
 virtual property int CacheDuration { int get(); void set(int value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))]
public virtual int CacheDuration { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))>]
member this.CacheDuration : int with get, set
Public Overridable Property CacheDuration As Integer

Valor da propriedade

O número de segundos que o SqlDataSource armazena em cache os resultados de uma operação Select(DataSourceSelectArguments). O padrão é 0. O valor não pode ser negativo.

Atributos

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. O CacheDuration é definido como 20 segundos e, como a propriedade é definida como o Absolute valor por padrão, os usuários desta página verão novos dados 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 que a entrada de cache seja descartada. Um valor 0 indica um cache infinitamente longo.

O comportamento do cache é determinado por uma combinação da duração e da CacheExpirationPolicy propriedade . Se a CacheExpirationPolicy propriedade for definida como o Absolute valor, os SqlDataSource dados serão armazenados em cache na primeira operação de recuperação de dados e os manterão na memória para, no máximo, a quantidade de tempo especificada pela CacheDuration propriedade. Os dados poderão ser liberados antes do tempo de duração, se a memória for necessária. Em seguida, o cache é atualizado durante a próxima operação. Se a CacheExpirationPolicy propriedade for definida como o Sliding valor, o controle da fonte de dados armazenará em cache os dados na primeira operação de recuperação de dados, mas redefinirá a janela de tempo que contém o cache para cada operação subsequente. O cache expira, se não houver nenhuma atividade por um tempo igual ao CacheDuration valor desde a última Select operação.

O SqlDataSource controle só pode armazenar dados em cache quando estiver no DataSet modo . Uma NotSupportedException exceção será gerada pelo Select método , se o SqlDataSource controle estiver definido como o valor e o DataReader cache também estiver habilitado.

Importante

Quando você está usando a representação do cliente em Microsoft autenticação do 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