• 设置缓存失效的三种方法


    案例:

    效果当在规定时间内访问一个网页时,网页上的内容咱是保持不变,时间一过,网页上的内容就会重新访问服务器,获取数据。

    前台:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="缓存.WebForm1" %>


    <!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></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>

    后台:

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    if (Cache["news"] == null)
                    {
                        DataTable dt = LoadData();


                        //将缓存和外部文件关联,外部文件以改变,缓存立即失效
                        //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);
                        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["Sqlserver"].ConnectionString;
                SqlConnection conn = new SqlConnection(strcon);
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "pro_FenYe";
                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;
            }
        }

    web.config中的设置时间的代码:

      <system.web>
            <compilation debug="true" targetFramework="4.0" />
          <caching>
            <sqlCacheDependency pollTime="500">
              <databases>
                <add name="sqldependency" connectionStringName="Sqlserver"/>
              </databases>
            </sqlCacheDependency>
          </caching>
        </system.web>

  • 相关阅读:
    python版本升级及pip部署方法
    Redis集群管理(二)
    UP UP UP!(dp)
    One Way Roads(搜索)
    Back to Underworld(搜索)
    队列链表实现以及有序表的合并
    第八届郑州轻工业学院ACM(程序设计大赛)校内预选赛
    Modulo Sum(背包 + STL)
    Co-prime Array&&Seating On Bus(两道水题)
    Hard Process(二分)
  • 原文地址:https://www.cnblogs.com/duanlinlin/p/3134501.html
Copyright © 2020-2023  润新知