SqlDataSource.EnableCaching プロパティ

定義

SqlDataSource コントロールでデータ キャッシュが有効かどうかを示す値を取得または設定します。Gets or sets a value indicating whether the SqlDataSource control has data caching enabled.

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

プロパティ値

Boolean

データ ソース コントロールでデータ キャッシュが有効な場合は true。それ以外の場合は falsetrue if data caching is enabled for the data source control; otherwise, false. 既定値は、false です。The default is false.

例外

EnableCaching でキャッシュがサポートされていない場合、SqlDataSource プロパティは true に設定されます。The EnableCaching property is set to true when caching is not supported by the SqlDataSource.

次のコード例は、Microsoft SQL Server で Northwind データベースからデータを取得し、データキャッシュが有効になっているコントロールに表示する方法を示して GridView います。The following code example demonstrates how to retrieve data from the Northwind database in Microsoft SQL Server and display it in a GridView control, with data caching enabled. EnableCachingプロパティがに設定され、 true CacheDuration が20秒に設定されています。The EnableCaching property is set to true and the CacheDuration is set to 20 seconds. CacheExpirationPolicy既定では、このプロパティはフィールドに設定されている Absolute ので、このページのユーザーには20秒ごとに新しいデータが表示されます。Because the CacheExpirationPolicy property is set to the Absolute field by default, users of this page will see fresh data every 20 seconds.

<%@ 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 データのキャッシュをサポートしています。The SqlDataSource control supports data caching. データがキャッシュされている間、メソッドは、 Select 基になるデータベースからではなく、キャッシュからデータを取得します。While data is cached, the Select method retrieves data from the cache rather than from the underlying database. キャッシュの有効期限が切れると、 Select メソッドは基になるデータベースからデータを取得し、データを再度キャッシュします。When the cache expires, the Select method retrieves data from the underlying database, and then caches the data again.

SqlDataSourceプロパティがに設定され、プロパティが0より大きい値に設定されている場合、コントロールはデータを自動的にキャッシュし EnableCaching true CacheDuration ます。これは、キャッシュが新しいセットを取得する前にデータを格納する秒数を示します。The SqlDataSource control automatically caches data when the EnableCaching property is set to true and the CacheDuration property is set to a value greater than 0, which indicates the number of seconds that the cache stores data before retrieving a fresh set.

重要

Microsoft Windows 認証でクライアントの偽装を使用している場合は、最初のユーザーがデータにアクセスしたときにデータがキャッシュされます。When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. 別のユーザーが同じデータを要求した場合、データはキャッシュから取得されます。If another user requests the same data, the data is retrieved from the cache. データへのユーザーのアクセスを確認するために、データベースに対して別の呼び出しを行っても、データは取得されません。The data is not retrieved by making another call to the database to verify the user's access to the data. 複数のユーザーがデータにアクセスすることが予想される場合に、各データの取得をデータベースのセキュリティ構成によって検証する必要がある場合は、キャッシュを使用しないでください。If you expect more than one user to access the data, and you want each retrieval to the data to be verified by the security configurations for the database, do not use caching.

適用対象

こちらもご覧ください