Bagikan melalui


SqlDataSource.CacheExpirationPolicy Properti

Definisi

Mendapatkan atau mengatur perilaku kedaluwarsa cache yang, ketika dikombinasikan dengan durasi, menjelaskan perilaku cache yang digunakan kontrol sumber data.

public:
 virtual property System::Web::UI::DataSourceCacheExpiry CacheExpirationPolicy { System::Web::UI::DataSourceCacheExpiry get(); void set(System::Web::UI::DataSourceCacheExpiry value); };
public virtual System.Web.UI.DataSourceCacheExpiry CacheExpirationPolicy { get; set; }
member this.CacheExpirationPolicy : System.Web.UI.DataSourceCacheExpiry with get, set
Public Overridable Property CacheExpirationPolicy As DataSourceCacheExpiry

Nilai Properti

Salah DataSourceCacheExpiry satu nilai. Defaultnya adalah nilainya Absolute .

Contoh

Contoh kode berikut menunjukkan cara mengambil data dari database Northwind di Microsoft SQL Server dan menampilkannya dalam GridView kontrol, dengan penembolokan data diaktifkan. CacheExpirationPolicy Karena properti diatur ke Sliding nilai , pengguna tidak akan melihat data baru meskipun nilainya CacheDuration adalah 20 detik. Data yang di-cache di-refresh hanya jika tidak ada aktivitas di halaman selama lebih dari 20 detik sejak halaman terakhir dimuat.

<!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"
                CacheExpirationPolicy="Sliding"
                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>
<!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"
                CacheExpirationPolicy="Sliding"
                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.

Perilaku cache ditentukan oleh kombinasi pengaturan CacheDuration dan CacheExpirationPolicy . CacheExpirationPolicy Jika properti diatur ke Absolute nilai , SqlDataSource cache data pada operasi pengambilan data pertama, menyimpannya dalam memori selama jumlah waktu yang ditentukan oleh CacheDuration properti, lalu membuangnya setelah waktu terhenti. 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 cache saat dalam DataSet mode . 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