SqlDataSource.EnableCaching Özellik

Tanım

Denetimin veri önbelleğe alma özelliğinin SqlDataSource etkinleştirilip etkinleştirilmediğini belirten bir değer alır veya ayarlar.

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

Özellik Değeri

true veri kaynağı denetimi için veri önbelleğe alma etkinleştirildiyse; aksi takdirde , false. Varsayılan değer: false.

Özel durumlar

EnableCaching özelliği, önbelleğe true alma özelliği tarafından SqlDataSourcedesteklenmediğinde olarak ayarlanır.

Örnekler

Aşağıdaki kod örneği, Microsoft SQL Server'daki Northwind veritabanından veri almayı ve veri önbelleğe alma etkinken bir GridView denetimde görüntülemeyi gösterir. EnableCaching özelliği olarak true ayarlanır ve CacheDuration 20 saniye olarak ayarlanır. CacheExpirationPolicy Özellik varsayılan olarak alana ayarlandığındanAbsolute, bu sayfanın kullanıcıları her 20 saniyede bir yeni verileri görür.

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

Açıklamalar

Denetim, SqlDataSource veri önbelleğe almayı destekler. Veriler önbelleğe alınırken yöntemi verileri Select temel alınan veritabanından değil önbellekten alır. Önbelleğin süresi dolduğunda yöntemi, Select temel alınan veritabanından verileri alır ve ardından verileri yeniden önbelleğe alır.

SqlDataSource Özellik olarak ayarlandığında ve CacheDuration özellik 0'dan büyük bir değere ayarlandığında true denetim verileri otomatik olarak önbelleğe EnableCaching alır ve bu da önbelleğin yeni bir kümeyi almadan önce verileri depoladığı saniye sayısını gösterir.

Önemli

Microsoft Windows kimlik doğrulaması altında istemci kimliğe bürünme özelliğini kullandığınızda, veriler ilk kullanıcı verilere eriştiğinde önbelleğe alınır. Başka bir kullanıcı aynı verileri isterse, veriler önbellekten alınır. Veriler, kullanıcının verilere erişimini doğrulamak için veritabanına başka bir çağrı yapılarak alınmaz. Verilere birden fazla kullanıcının erişmesini bekliyorsanız ve her veri alımının veritabanı için güvenlik yapılandırmaları tarafından doğrulanmasını istiyorsanız, önbelleğe almayı kullanmayın.

Şunlara uygulanır

Ayrıca bkz.