博客
关于我
数据源控件和缓存
阅读量:16535 次
发布时间:2019-09-11 12:12:10

本文共 1273 字,大约阅读时间需要 4 分钟。

数据源控件和缓存

    数据源控件可以检索将提供给应用程序中其他组件的数据。当多个页面需要访问该信息时,最新的缓存可以提供快得多的响应。ASP.NET Cache对象是存储内存中数据的首选位置。您可以指示SqlDataSource控件在特定时间内缓存查询的结果,但前提是数据源模式为DataSet。

    默认情况下,在SqlDataSource控件中禁用缓存,但您可以通过将EnableCaching属性设置为真来启用缓存。您还应该赋予CacheDuration属性一个非零值。CacheDuration属性指示数据源内容在内存中保留的时间长度(秒)。下面的代码显示了一个SqlDataSource控件,它缓存的数据每五分钟(300秒)就会过期:

<asp:SqlDataSource
    runat="server"
    ConnectionString="..."
    SelectCommand="SELECT * FROM products"
    EnableCaching="true"
    CacheDuration="300"
/>

    默认情况下使用绝对过期策略,但您可以通过设置CacheExpirationPolicy将控件配置为使用可调整策略。针对每个缓存参数、连接字符串和SelectParameters与SelectCommand值的组合,都创建了唯一的缓存密钥。该缓存密钥随后被散列,以保护用于生成它的源数据。

    SqlDataSource控件还支持一种基于其内容与SQL Server数据库中的某个表之间的逻辑依赖项集合的缓存过期形式。用于实现此功能的类是SqlCacheDependency。该功能有两个不同的实现—一个用于SQL Server 2005,一个用于SQL Server 2000和SQL Server 7.0。这两个实现彼此完全独立。目前,您可以通过SqlDataSource控件访问的其他数据关系存储区不支持该功能。

    在SQL Server 7.0和SQL Server 2000中,依赖项被指定为“数据库:表”格式的字符串属性。该字符串的数据库部分必须引用在web.config文件的新区段下面列出的数据库,而表部分必须是该数据库中的表的名称。您可以通过用分号分隔来指定多个表依赖项,如下面的示例所示:

<asp:SqlDataSource
    runat="server"
    ConnectionString="..."
    SelectCommand="sp_getdata"
    SqlCacheDependency="pubs:Authors;pubs:TitleAuthor"
    EnableCaching="true"
    CacheDuration="300"
/>

    对Authors或TitleAuthor表进行任何更改以后,都将自动使数据源控件通过sp_getdata存储过程检索到的缓存内容无效。数据库中的更改可以使缓存中的某些值无效的可能性在Web场方案中尤其有用—此时,一台计算机上的更新可以自动强行刷新所有其他计算机的数据。

 

转载地址:http://oquymz.baihongyu.com/

你可能感兴趣的文章
Mac OS X 下编译安装 Nginx
查看>>
salesforce中几种对象关系的总结
查看>>
salesforce中几种自动化工具的总结
查看>>
salesforce权限总结
查看>>
salesforce 变更管理总结
查看>>
Custom Setting vs Custom Metadata Types
查看>>
DML语句&Database
查看>>
Python 的特点
查看>>
Python 的应用
查看>>
黑客 骚扰欺诈 呼死你之外还假冒给好友打电话
查看>>
Web的脆弱性:各种注入、攻击
查看>>
SQLSERVER注入必殺技
查看>>
debug log
查看>>
app 备考
查看>>
5、springcloud基本构建(Feign)-服务调用Feign
查看>>
aardio消息大全
查看>>
Uipath官方中文字幕视频从入门到精通
查看>>
Uipath图片验证码识别组件
查看>>
UiPath从入门到精通视频教程(全)免积分!!!
查看>>
UiPath条件判断活动If的介绍和使用文档版
查看>>