?? 周期性的查詢數(shù)據(jù)庫(基于購物車).txt
字號:
對于數(shù)據(jù)庫內(nèi)容不是經(jīng)常變化的,下面的做法更高效
1.周期性的查詢數(shù)據(jù)庫,在應(yīng)用程序中保存結(jié)果,在應(yīng)用程序緩存中保存結(jié)果,并用緩存中的數(shù)據(jù)填充DataGrid
1.WebForm1.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
DataSet ds = (DataSet)Cache["titles"];
if (ds != null)
{
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
}
else
{
Label1.Text = "Server busy";
}
}
2.Global.asax.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.Web.Caching;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace MyCongo
{
/// <summary>
/// Global 的摘要說明。
/// </summary>
public class Global : System.Web.HttpApplication
{
/// <summary>
/// 必需的設(shè)計器變量。
/// </summary>
private System.ComponentModel.IContainer components = null;
static Cache _cache = null;
public Global()
{
InitializeComponent();
}
protected void Application_Start(Object sender, EventArgs e)
{
_cache = Context.Cache;
DataSet ds=ReadDataSet();
if (ds != null)
{
//將數(shù)據(jù)集插入緩存中
_cache.Insert ("titles", ds, null,
Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5),
CacheItemPriority.AboveNormal,
new CacheItemRemovedCallback(RefreshDS));
}
}
//回調(diào)函數(shù)
static void RefreshDS (String key, Object item,
CacheItemRemovedReason reason)
{
DataSet ds=ReadDataSet();
if (ds != null)
{
_cache.Insert ("titles", ds, null,
Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5),
CacheItemPriority.AboveNormal,
new CacheItemRemovedCallback(RefreshDS));
}
}
static DataSet ReadDataSet ()
{
string ConnectString =
ConfigurationSettings.AppSettings["connectString"];
SqlDataAdapter adapter = new SqlDataAdapter
("select * from titles where price != 0", ConnectString);
DataSet ds = new DataSet ();
adapter.Fill (ds);
return ds;
}
protected void Session_Start(Object sender, EventArgs e)
{
Session["MyShoppingCart"] = new ShoppingCart();
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
}
protected void Application_Error(Object sender, EventArgs e)
{
}
protected void Session_End(Object sender, EventArgs e)
{
}
protected void Application_End(Object sender, EventArgs e)
{
}
#region Web 窗體設(shè)計器生成的代碼
/// <summary>
/// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
}
#endregion
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -