SqlDataSource.CacheDuration プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Select(DataSourceSelectArguments) メソッドによって取得したデータを、データ ソース コントロールがキャッシュする時間 (秒単位) を取得または設定します。
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
プロパティ値
SqlDataSource が Select(DataSourceSelectArguments) 操作の結果をキャッシュする秒数。 既定値は 0 です。 この値を負にすることはできません。
- 属性
例
次のコード例では、Microsoft SQL Server の Northwind データベースからデータを取得し、データ キャッシュを GridView 有効にしてコントロールに表示する方法を示します。 CacheDurationは 20 秒に設定され、 プロパティは既定で 値にAbsolute設定されているためCacheExpirationPolicy、このページのユーザーには 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にデータを自動的にキャッシュします。これは、キャッシュ エントリが破棄されるまでにキャッシュがデータを格納する秒数を示します。 値 0 は、無限に長いキャッシュを示します。
キャッシュの動作は、duration と CacheExpirationPolicy プロパティの組み合わせによって決まります。 プロパティが CacheExpirationPolicy 値に Absolute 設定されている場合、 SqlDataSource 最初のデータ取得操作でデータがキャッシュされ、最大でプロパティで CacheDuration 指定された時間のメモリ内に保持されます。 メモリが必要な場合は、期間の前にデータが解放される可能性があります。 その後、キャッシュは次の操作中に更新されます。 プロパティが CacheExpirationPolicy 値に Sliding 設定されている場合、データ ソース コントロールは最初のデータ取得操作でデータをキャッシュしますが、後続の操作ごとにキャッシュを保持する時間枠をリセットします。 最後Selectの操作以降の値と等しいCacheDuration時間のアクティビティがない場合、キャッシュの有効期限が切れます。
コントロールは SqlDataSource 、モードの場合にのみデータを DataSet キャッシュできます。 NotSupportedExceptionコントロールが値にSelect設定DataReaderされ、キャッシュも有効になっている場合SqlDataSourceは、 メソッドによって例外がスローされます。
重要
Microsoft Windows 認証でクライアントの偽装を使用している場合、最初のユーザーがデータにアクセスすると、データがキャッシュされます。 別のユーザーが同じデータを要求すると、データはキャッシュから取得されます。 データに対するユーザーのアクセスを確認するためにデータベースを別の呼び出しを行うことで、データは取得されません。 複数のユーザーがデータにアクセスする必要があり、データベースのセキュリティ構成によってデータを取得するたびに検証する場合は、キャッシュを使用しないでください。
適用対象
こちらもご覧ください
.NET