SqlDataSource.EnableCaching Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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é.