次の方法で共有


SqlDataSource.EnableCaching プロパティ

定義

SqlDataSource コントロールでデータ キャッシュが有効かどうかを示す値を取得または設定します。

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

プロパティ値

データ ソース コントロールでデータ キャッシュが有効な場合は true。それ以外の場合は false。 既定値は、false です。

例外

EnableCaching でキャッシュがサポートされていない場合、SqlDataSource プロパティは true に設定されます。

次のコード例では、Microsoft SQL Server の Northwind データベースからデータを取得し、データ キャッシュを GridView 有効にしてコントロールに表示する方法を示します。 プロパティが EnableCachingtrue 設定され、 CacheDuration が 20 秒に設定されています。 CacheExpirationPolicyプロパティは既定で フィールドにAbsolute設定されているため、このページのユーザーには 20 秒ごとに新しいデータが表示されます。

<%@ 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 データ キャッシュをサポートしています。 データがキャッシュされている間、 Select メソッドは基になるデータベースからではなく、キャッシュからデータを取得します。 キャッシュの有効期限が切れると、 メソッドは Select 基になるデータベースからデータを取得し、データをもう一度キャッシュします。

コントロールはSqlDataSource、 プロパティが にtrue設定されCacheDuration、 プロパティが 0 より大きい値に設定されるとEnableCaching、データを自動的にキャッシュします。これは、キャッシュがデータを格納してから新しいセットを取得するまでの秒数を示します。

重要

Microsoft Windows 認証でクライアントの偽装を使用している場合、最初のユーザーがデータにアクセスすると、データがキャッシュされます。 別のユーザーが同じデータを要求すると、データはキャッシュから取得されます。 データに対するユーザーのアクセスを確認するためにデータベースを別の呼び出しを行うことで、データは取得されません。 複数のユーザーがデータにアクセスする必要があり、データベースのセキュリティ構成によってデータを取得するたびに検証する場合は、キャッシュを使用しないでください。

適用対象

こちらもご覧ください