如何减少对数据库的访问——多个页面共用数据集

来源:互联网 发布:php 文件上传方法 编辑:程序博客网 时间:2024/04/18 12:22

using System;
using System.Data;
using bll = BLL;//引用业务逻辑层
using common = My.Common;//引用Common层
namespace SO
{
 /// <summary>
 /// Facade 的摘要说明。
 /// </summary>
 public class Facade
 {
  public Facade() {}

  private static bll.SO so;//逻辑访问层

  /// <summary>
  /// 各个模块需要显示的数据
  /// </summary>
  private static DataSet dsArticles; 
  private static DateTime lastfresh = DateTime.Now;
  public static DataSet DsArticles
  {
   get
   {
    try
    {
     //TimeSpan now = new TimeSpan(DateTime.Now.Ticks);
     //TimeSpan last = new TimeSpan(lastRefresh.Ticks);
     double span = new TimeSpan(DateTime.Now.Ticks).Subtract(new TimeSpan(lastfresh.Ticks)).Duration().TotalSeconds;
     if( dsArticles==null || span>60  ) //超过1分钟则刷新缓存
     {
      so = new BLL.SO();
      dsArticles = so.GetIndexArticles();
      dsArticles.Tables[0].TableName = "文件通知";
      dsArticles.Tables[1].TableName = "调查快讯";
      dsArticles.Tables[2].TableName = "调查简讯";
      dsArticles.Tables[3].TableName = "调查报告";
      dsArticles.Tables[4].TableName = "参考消息";
      dsArticles.Tables[5].TableName = "公告";
      dsArticles.Tables[6].TableName = "法律法规";
      dsArticles.Tables[7].TableName = "制度标准";
      dsArticles.Tables[8].TableName = "队伍建设";
      dsArticles.Tables[9].TableName = "文化建设";
     }
     return dsArticles;
    }
    catch(Exception ex)
    {
     common.JScript.Alert(ex.Message);
     return null;
     //throw ex;
    }
    finally
    {
     lastfresh = DateTime.Now;
     so = null;
     
    }
   }
  }
 }
}

原创粉丝点击