SqlDataSource.EnableCaching Egenskap

Definition

Hämtar eller anger ett värde som anger om SqlDataSource kontrollen har datacachelagring aktiverat.

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

Egenskapsvärde

trueom datacachelagring är aktiverat för datakällans kontroll. annars . false Standardvärdet är false.

Undantag

Egenskapen EnableCaching är inställd på true när cachelagring inte stöds av SqlDataSource.

Exempel

Följande kodexempel visar hur du hämtar data från Northwind-databasen i Microsoft SQL Server och visar dem i en GridView-kontroll, med datacachelagring aktiverat. Egenskapen EnableCaching är inställd på true och är inställd på CacheDuration 20 sekunder. Eftersom egenskapen CacheExpirationPolicy är inställd på Absolute fältet som standard ser användare av den här sidan nya data var 20:e sekund.

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

Kommentarer

Kontrollen SqlDataSource stöder datacachelagring. Medan data cachelagras Select hämtar metoden data från cacheminnet i stället för från den underliggande databasen. När cacheminnet upphör att gälla Select hämtar metoden data från den underliggande databasen och cachelagrar sedan data igen.

Kontrollen SqlDataSource cachelagrar automatiskt data när EnableCaching egenskapen är inställd på true och CacheDuration egenskapen anges till ett värde som är större än 0, vilket anger antalet sekunder som cacheminnet lagrar data innan en ny uppsättning hämtas.

Important

När du använder klientpersonifiering under Microsoft Windows authentication cachelagras data när den första användaren kommer åt data. Om en annan användare begär samma data hämtas data från cacheminnet. Data hämtas inte genom att göra ett nytt anrop till databasen för att verifiera användarens åtkomst till data. Om du förväntar dig att fler än en användare ska komma åt data och du vill att varje hämtning till data ska verifieras av säkerhetskonfigurationerna för databasen ska du inte använda cachelagring.

Gäller för

Se även