使用 SqlDataSource 控件缓存数据

qlDataSource 控件缓存数据

 

SqlDataSource 控件可对它检索过的数据进行缓存,这样可以避免再次运行资源消耗量较大的查询,从而提高应用程序的性能。缓存主要用于数据变化不频繁的情况。

此外,当通过 System.Data.SqlClient 提供程序使用 SqlDataSource 控件时,可以使用 SqlCacheDependency 对象。这样可使 SqlDataSource 控件仅在 SelectCommand 返回的数据在数据库中被修改时才刷新缓存。

通过 SqlDataSource 控件启用缓存

SqlDataSource 控件的 DataSourceMode 属性设置为 DataSet 时,该控件可对数据进行缓存。默认情况下并未启用缓存,但可以通过将 EnableCaching 属性设置为 true 来启用缓存。

将基于一个时间间隔对缓存数据进行刷新。可以将 CacheDuration 属性设置为刷新缓存之前要等待的秒数。SqlDataSource 控件为每个 ConnectionStringSelectCommandSelectParameters 值的组合维护一个单独的缓存项。

通过设置 CacheExpirationPolicy 属性,可以进一步控制 SqlDataSource 缓存的行为。Absolute 值会在超过 CacheDuration 值时强制刷新缓存。将 CacheExpirationPolicy 属性设置为 Sliding,则仅在从最后一次访问缓存项起超过 CacheDuration 值之后才对缓存进行刷新。

下面的代码示例演示一个 SqlDataSource 控件,该控件配置为每 20 秒刷新一次数据:

使用 SqlDataSource 控件缓存数据 使用 SqlDataSource 控件缓存数据<%@ Page language="C#" %> 使用 SqlDataSource 控件缓存数据
使用 SqlDataSource 控件缓存数据<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 使用 SqlDataSource 控件缓存数据
使用 SqlDataSource 控件缓存数据<html  > 使用 SqlDataSource 控件缓存数据
    <head runat="server"> 使用 SqlDataSource 控件缓存数据 
   <title>ASP.NET Example</title> 使用 SqlDataSource 控件缓存数据</head> 使用 SqlDataSource 控件缓存数据<body> 使用 SqlDataSource 控件缓存数据 
       <form id="form1" runat="server"> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据          
  <asp:SqlDataSource 使用 SqlDataSource 控件缓存数据           
     id="SqlDataSource1" 使用 SqlDataSource 控件缓存数据               runat="server" 使用 SqlDataSource 控件缓存数据                DataSourceMode="DataSet" 使用 SqlDataSource 控件缓存数据                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" 使用 SqlDataSource 控件缓存数据                EnableCaching="True" 使用 SqlDataSource 控件缓存数据                CacheDuration="20" 使用 SqlDataSource 控件缓存数据                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"> 使用 SqlDataSource 控件缓存数据
使用 SqlDataSource 控件缓存数据
            </asp:SqlDataSource> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据            <asp:GridView 使用 SqlDataSource 控件缓存数据                id="GridView1" 使用 SqlDataSource 控件缓存数据                runat="server" 使用 SqlDataSource 控件缓存数据                AutoGenerateColumns="False" 使用 SqlDataSource 控件缓存数据                DataSourceID="SqlDataSource1"> 使用 SqlDataSource 控件缓存数据                <columns> 使用 SqlDataSource 控件缓存数据                    <asp:BoundField HeaderText="First Name" DataField="FirstName" /> 使用 SqlDataSource 控件缓存数据                    <asp:BoundField HeaderText="Last Name" DataField="LastName" /> 使用 SqlDataSource 控件缓存数据                    <asp:BoundField HeaderText="Title" DataField="Title" /> 使用 SqlDataSource 控件缓存数据                </columns> 使用 SqlDataSource 控件缓存数据            </asp:GridView> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据       
使用 SqlDataSource 控件缓存数据
 </form> 使用 SqlDataSource 控件缓存数据  
  </body>
使用 SqlDataSource 控件缓存数据</html> 使用 SqlDataSource 控件缓存数据

使用 SqlCacheDependency 对象

SqlDataSource 控件支持基于 SqlCacheDependency 对象的可选过期策略。可以使用 SqlCacheDependency 对象来确保仅在修改了数据库中的源表时才对缓存数据进行刷新。为了使用 SqlCacheDependency 对象,必须为数据库服务器运行 Microsoft SQL Server 通知服务。

如果数据源是 SQL Server 7.0 或更高版本,通过将 SqlDataSource 控件的 SqlCacheDependency 属性设置为由连接字符串和表标识符组成的字符串(形式为“ConnectionString:Table”),可以使用 SqlCacheDependency 对象对数据库进行轮询以检查更改。如果 SqlCacheDependency 涉及多个表,则连接字符串和表名称对以分号分隔,如下面的示例所示:

“ConnectionString1:Table1;ConnectionString2:Table2”。

如果数据源是 Microsoft SQL Server 2005,则还可以选择让 SQL Server 向应用程序通知更改,而不用轮询检查更改。通过将 SqlCacheDependency 属性设置为字符串“CommandNotification”,可以使用该通知模型。有关 SqlCacheDependency 对象的更多信息,请参见使用 SqlCacheDependency 类在 ASP.NET 中缓存

下面的代码示例演示如何创建 Microsoft SQL Server 缓存依赖项,以及如何设置 SqlDataSource 控件的 SqlCacheDependency 属性。在该示例中,每 120 秒对数据库进行一次轮询。如果在这段时间内 Northwind Employees 表中的数据发生更改,则下次对数据库进行轮询时将对由 SqlDataSource 控件缓存和 GridView 控件显示的数据进行刷新。

使用 SqlDataSource 控件缓存数据 使用 SqlDataSource 控件缓存数据<%@ Page language="c#" %> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据<!-- 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据The page uses an example configuration that includes 使用 SqlDataSource 控件缓存数据connection strings and a defined SqlCacheDependecy. 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据<?xml version="1.0"?> 使用 SqlDataSource 控件缓存数据<configuration> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据  <connectionStrings> 使用 SqlDataSource 控件缓存数据
    <add name="MyNorthwind" 使用 SqlDataSource 控件缓存数据         connectionString="Data Source="localhost";Integrated Security="SSPI";Initial Catalog="Northwind"" 使用 SqlDataSource 控件缓存数据         providerName="System.Data.SqlClient" /> 使用 SqlDataSource 控件缓存数据
  </connectionStrings> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据
  <system.web> 使用 SqlDataSource 控件缓存数据    <cache> 使用 SqlDataSource 控件缓存数据 
     <sqlCacheDependency enabled="true"> 使用 SqlDataSource 控件缓存数据        <databases> 使用 SqlDataSource 控件缓存数据   
       <add 使用 SqlDataSource 控件缓存数据            name="Northwind" 使用 SqlDataSource 控件缓存数据            connectionStringName="MyNorthwind" 使用 SqlDataSource 控件缓存数据            pollTime="120000" /> 使用 SqlDataSource 控件缓存数据        </databases> 使用 SqlDataSource 控件缓存数据      </sqlCacheDependency> 使用 SqlDataSource 控件缓存数据    </cache> 使用 SqlDataSource 控件缓存数据
使用 SqlDataSource 控件缓存数据  </system.web> 使用 SqlDataSource 控件缓存数据</configuration> 使用 SqlDataSource 控件缓存数据--> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 使用 SqlDataSource 控件缓存数据    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
使用 SqlDataSource 控件缓存数据<html  > 使用 SqlDataSource 控件缓存数据 
使用 SqlDataSource 控件缓存数据
 <head runat="server"> 使用 SqlDataSource 控件缓存数据    <title>ASP.NET Example</title> 使用 SqlDataSource 控件缓存数据</head> 使用 SqlDataSource 控件缓存数据<body> 使用 SqlDataSource 控件缓存数据    <form id="Form1" method="post" runat="server"> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据        <asp:gridview 使用 SqlDataSource 控件缓存数据          id="GridView1" 使用 SqlDataSource 控件缓存数据          runat="server" 使用 SqlDataSource 控件缓存数据          datasourceid="SqlDataSource1" /> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据        <asp:sqldatasource 使用 SqlDataSource 控件缓存数据          id="SqlDataSource1" 使用 SqlDataSource 控件缓存数据          runat="server" 使用 SqlDataSource 控件缓存数据          connectionstring="<%$ ConnectionStrings:MyNorthwind%>" 使用 SqlDataSource 控件缓存数据          selectcommand="SELECT EmployeeID,FirstName,Lastname FROM Employees" 使用 SqlDataSource 控件缓存数据          enablecaching="True" 使用 SqlDataSource 控件缓存数据          cacheduration="300" 使用 SqlDataSource 控件缓存数据          cacheexpirationpolicy="Absolute" 使用 SqlDataSource 控件缓存数据          sqlcachedependency="Northwind:Employees" /> 使用 SqlDataSource 控件缓存数据使用 SqlDataSource 控件缓存数据    </form> 使用 SqlDataSource 控件缓存数据  </body>
使用 SqlDataSource 控件缓存数据
使用 SqlDataSource 控件缓存数据</html>

使用 SqlDataSource 控件缓存数据,布布扣,bubuko.com

使用 SqlDataSource 控件缓存数据

上一篇:win10 powershell 7 utf8 字符编码问题 中文乱码


下一篇:WPF数据库编程,存储过程查询以及增删改。