缓存的有几种方式
前台代码:
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Cache["news"] == null)
{
DataTable dt = LoadData();
//Cache.Insert("news", dt);//将datatable添加到缓存中
//将缓存和外部文件相关联,外部文件以改变,缓存即失效
//Cache.Insert("news", dt, new CacheDependency(@"d:\cache.txt"));
//为缓存设定一个绝对时间,让缓存在这个时间到的时候失效
//Cache.Insert("news", dt, null, DateTime.Now.AddSeconds(20),TimeSpan.Zero);
// Cache.Insert("news", dt, null, DateTime.MaxValue, TimeSpan.FromSeconds(30));
Cache.Insert("news", dt, new SqlCacheDependency("sqlcache", "T_News1"));
//1)使用数据库安装工具aspnetsql,向数据库添加缓存依赖。让sqlserver支持asp.net缓存
//执行命令:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
//执行命令:aspnet_regsql -C "Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111" -ed -et -t "T_News1"
// 注:为News数据库中的T_News1表启用缓存依赖项,即此表中的数据更改之后缓存失效
// 2)在web.config的sys.web节中添加依赖信息
//<caching>
// <sqlCacheDependency enabled="true" pollTime="5000">
// <databases>
// <add name="sqlcache" connectionStringName="strcon"/>
// </databases>
// </sqlCacheDependency>
// </caching>
// 注:其中 polltime表示更新频率,即每隔多长时间去数据重新查询一次来更新
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
else
{
DataTable dt = Cache["news"] as DataTable;
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}
}
private DataTable LoadData()
{
string strcon = ConfigurationManager.ConnectionStrings["strcon"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "Pro_TNews1Paging";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@pagesize", 500);
cmd.Parameters.AddWithValue("@pageindex", 1);
DataTable dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dt);
cmd.Dispose();
conn.Dispose();
return dt;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构