SqlDataSource.EnableCaching 属性

定义

获取或设置一个值,该值指示 SqlDataSource 控件是否启用数据缓存。

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。 默认值为 false

例外

EnableCaching 不支持缓存时,SqlDataSource 属性设置为 true

示例

下面的代码示例演示如何在启用数据缓存的情况下从 Microsoft SQL Server 中的 Northwind 数据库中检索数据并将其显示在控件中 GridView 。 属性 EnableCaching 设置为 trueCacheDuration 设置为 20 秒。 CacheExpirationPolicy由于 属性默认设置为 Absolute 字段,因此此页面的用户将每 20 秒看到一次新数据。

<%@ 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 支持数据缓存。 缓存数据时, Select 方法从缓存中检索数据,而不是从基础数据库检索数据。 缓存过期后, Select 方法从基础数据库检索数据,然后再次缓存数据。

当 属性设置为 且 CacheDuration 属性设置为true大于 0 的值时EnableCaching,控件SqlDataSource会自动缓存数据,该值指示缓存在检索新集之前存储数据的秒数。

重要

在 Microsoft Windows 身份验证下使用客户端模拟时,当第一个用户访问数据时,数据将缓存。 如果其他用户请求相同的数据,则会从缓存中检索数据。 不通过对数据库进行另一次调用来检索数据,以验证用户对数据的访问权限。 如果希望多个用户访问数据,并且希望通过数据库的安全配置验证对数据的每次检索,请不要使用缓存。

适用于

另请参阅