SqlDataSource.CacheDuration 속성

정의

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

속성 값

Int32

SqlDataSource에서 Select(DataSourceSelectArguments) 작업의 결과를 캐시하는 시간(초)입니다. 기본값은 0입니다. 값은 음수일 수 없습니다.

특성

예제

다음 코드 예제에는 Microsoft SQL Server에서 Northwind 데이터베이스에서 데이터를 검색에서 표시 하는 방법을 보여 줍니다.는 GridView 컨트롤, 데이터 캐싱을 사용 하도록 설정 합니다. 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 컨트롤은 자동으로 데이터를 캐시 때 합니다 EnableCaching 속성이 trueCacheDuration 속성 캐시에 캐시 엔트리 이전의 데이터가 저장 되는 시간 (초) 수를 나타내는 0 보다 큰 값으로 설정 됩니다 삭제 됩니다. 값이 0 무한정 캐시를 나타냅니다.

캐시의 동작 기간의 조합으로 결정 됩니다 및 CacheExpirationPolicy 속성입니다. 경우는 CacheExpirationPolicy 속성을 Absolute 값을 SqlDataSource 첫 번째 데이터 검색 작업에 데이터를 캐시, 최대 시간으로 지정 된 기간 동안 메모리에 보관 CacheDuration 속성입니다. 메모리가 필요한 경우 데이터를 기간, 이전 해제 될 수 있습니다. 다음 작업 중에 캐시 한 다음 새로 고쳐집니다. 경우는 CacheExpirationPolicy 속성을 Sliding 값을 데이터 소스 컨트롤은 첫 번째 데이터 검색 작업에서 데이터를 캐시 하지만 각 후속 작업에 대 한 캐시를 포함 하는 시간 창을 다시 설정 합니다. 해당 시간 동안 활동이 없는 경우 캐시가 만료 되는 CacheDuration 마지막 값 Select 작업 합니다.

합니다 SqlDataSource 컨트롤의 경우에 데이터를 캐시할 수 DataSet 모드입니다. NotSupportedException 예외를 throw를 Select 메서드를 경우 합니다 SqlDataSource 로 설정 되어를 DataReader 값 및 캐싱도 사용 합니다.

중요

Microsoft Windows 인증에서 클라이언트 가장을 사용 하는 첫 번째 사용자 데이터에 액세스 하는 경우 데이터 캐시 됩니다. 다른 사용자가 동일한 데이터를 요청 하는 경우 데이터 캐시에서 검색 됩니다. 데이터를 호출 하 여 다른 데이터베이스로 데이터에 대 한 사용자의 액세스를 확인 하려면 검색 되지 않습니다. 데이터에 액세스 하는 둘 이상의 사용자를 예상 하는 경우 각 검색 데이터를 데이터베이스에 대 한 보안 구성으로 확인에 캐싱을 사용 하지 마십시오.

적용 대상

추가 정보