Bagikan melalui


SqlDataSource.CacheDuration Properti

Definisi

Mendapatkan atau mengatur lamanya waktu, dalam detik, bahwa kontrol sumber data menyimpan data yang diambil oleh Select(DataSourceSelectArguments) metode .

public:
 virtual property int CacheDuration { int get(); void set(int value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))]
public virtual int CacheDuration { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))>]
member this.CacheDuration : int with get, set
Public Overridable Property CacheDuration As Integer

Nilai Properti

Jumlah detik cache SqlDataSource hasil Select(DataSourceSelectArguments) operasi. Defaultnya adalah 0. Nilai tidak boleh negatif.

Atribut

Contoh

Contoh kode berikut menunjukkan cara mengambil data dari database Northwind di Microsoft SQL Server dan menampilkannya dalam GridView kontrol, dengan penembolokan data diaktifkan. CacheDuration diatur ke 20 detik dan, karena CacheExpirationPolicy properti diatur ke Absolute nilai secara default, pengguna halaman ini akan melihat data baru setiap 20 detik.

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

Keterangan

Kontrol SqlDataSource mendukung penembolokan data. Saat data di-cache, Select metode mengambil data dari cache daripada dari database yang mendasar. Ketika cache kedaluwarsa, Select metode mengambil data dari database yang mendasar, lalu cache data lagi.

SqlDataSource Kontrol secara otomatis menyimpan data saat EnableCaching properti diatur ke true dan CacheDuration properti diatur ke nilai yang lebih besar dari 0, yang menunjukkan jumlah detik bahwa cache menyimpan data sebelum entri cache dibuang. Nilai 0 menunjukkan cache yang sangat panjang.

Perilaku cache ditentukan oleh kombinasi durasi dan CacheExpirationPolicy properti . CacheExpirationPolicy Jika properti diatur ke Absolute nilai , SqlDataSource cache data pada operasi pengambilan data pertama, menyimpannya dalam memori untuk, paling banyak, jumlah waktu yang ditentukan oleh CacheDuration properti. Data mungkin dirilis sebelum waktu durasi, jika memori diperlukan. Cache kemudian disegarkan selama operasi berikutnya. CacheExpirationPolicy Jika properti diatur ke Sliding nilai , kontrol sumber data menyimpan data pada operasi pengambilan data pertama, tetapi mengatur ulang jendela waktu yang disimpan cache untuk setiap operasi berikutnya. Cache kedaluwarsa, jika tidak ada aktivitas untuk waktu yang sama dengan CacheDuration nilai sejak operasi terakhir Select .

Kontrol SqlDataSource hanya dapat menyimpan data dalam DataSet mode cache. NotSupportedException Pengecualian dilemparkan oleh Select metode , jika SqlDataSource kontrol diatur ke DataReader nilai dan penembolokan juga diaktifkan.

Penting

Saat Anda menggunakan peniruan klien di bawah autentikasi Microsoft Windows, data di-cache saat pengguna pertama mengakses data. Jika pengguna lain meminta data yang sama, data diambil dari cache. Data tidak diambil dengan melakukan panggilan lain ke database untuk memverifikasi akses pengguna ke data. Jika Anda mengharapkan lebih dari satu pengguna mengakses data, dan Anda ingin setiap pengambilan data diverifikasi oleh konfigurasi keamanan untuk database, jangan gunakan penembolokan.

Berlaku untuk

Lihat juga