SqlDataSource.EnableCaching Propiedad

Definición

Obtiene o establece un valor que indica si el control SqlDataSource está 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 de propiedad

Es true si el almacenamiento de datos en caché está habilitado para el control de origen de datos; de lo contrario, es false. De manera predeterminada, es false.

Excepciones

La propiedad EnableCaching se establece en true cuando el control SqlDataSource no admite el almacenamiento en memoria caché.

Ejemplos

En el ejemplo de código siguiente se muestra cómo recuperar datos de la base de datos Northwind en Microsoft SQL Server y mostrarlos en un GridView control, con el almacenamiento en caché de datos habilitado. La EnableCaching propiedad se establece true en y CacheDuration se establece en 20 segundos. Dado que la CacheExpirationPolicy propiedad se establece en el Absolute campo de forma predeterminada, los usuarios de esta página verán datos actualizados 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>

Comentarios

El SqlDataSource control admite el almacenamiento en caché de datos. Mientras se almacenan en caché los datos, el Select método recupera datos de la memoria caché en lugar de de la base de datos subyacente. Cuando expira la memoria caché, el Select método recupera datos de la base de datos subyacente y, a continuación, vuelve a almacenar en caché los datos.

El SqlDataSource control almacena automáticamente los datos cuando la EnableCaching propiedad se establece true en y la CacheDuration propiedad se establece en un valor mayor que 0, lo que indica el número de segundos en que la memoria caché almacena los datos antes de recuperar un conjunto nuevo.

Importante

Cuando se usa la suplantación de cliente en la autenticación de Microsoft Windows, los datos se almacenan en caché cuando el primer usuario accede a los datos. Si otro usuario solicita los mismos datos, los datos se recuperan de la memoria caché. Los datos no se recuperan realizando otra llamada a la base de datos para comprobar el acceso del usuario a los datos. Si espera que más de un usuario acceda a los datos y desea que las configuraciones de seguridad de la base de datos comprueben cada recuperación de los datos, no use el almacenamiento en caché.

Se aplica a

Consulte también