Demo簡單的是實現Asp.net2.0中緩衝機制的實現:
註:對資料庫的緩衝依賴,.net目前並不支援oracle資料庫(方法可以參考轉帖文章)》
- public partial class _Default : System.Web.UI.Page
- {
- string connstr;
- protected void Page_Load(object sender, EventArgs e)
- {
- connstr = "server=.;dataBase=MIS;uid=sa;password=123";
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- //-------------------檔案依賴緩衝---------------------
- DataTable dt=getInfo();
- CacheDependency cd=new CacheDependency(Server.MapPath("file.txt"));
- Cache.Insert("Data",dt,cd);
- }
- private DataTable getInfo()
- {
-
- using (SqlConnection conn = new SqlConnection(connstr))
- {
- string sql = "select * from mis";
-
- SqlCommand cmd = new SqlCommand(sql,conn);
- conn.Open();
- SqlDataAdapter ada = new SqlDataAdapter(cmd);
- DataTable dt = new DataTable();
- ada.Fill(dt);
- return dt;
- }
-
- }
- protected void Button3_Click(object sender, EventArgs e)
- {
- //-------------顯示資料-----------
- if (Cache.Get("Data") != null)
- {
- DataTable dt = Cache.Get("Data") as DataTable;
- GridView1.DataSource = dt;
- GridView1.DataBind();
- }
- else
- {
- //緩衝到期
- Response.Write("Cache is null");
- }
-
- }
- protected void Button2_Click(object sender, EventArgs e)
- {
- //-------------MSSQL資料庫依賴緩衝--------------------
- string dbname = "MIS"; //注意,資料庫必須在web.config中做相應的配置
- string tblname = "mis";
- //啟用指定資料庫,資料表的緩衝依賴
- SqlCacheDependencyAdmin.EnableTableForNotifications(connstr, tblname);
- SqlCacheDependency scd = new SqlCacheDependency(dbname,tblname);
- DataTable dt = getInfo();
- Cache.Insert("Data", dt, scd);
-
- }
- }
web.config:
- <connectionStrings>
<add name ="mis" connectionString ="server=.;dataBase=MIS;uid=sa;password=123"/>
</connectionStrings>
- <system.web>
- <caching >
- <sqlCacheDependency >
- <databases >
- <add name="MIS" connectionStringName="mis"/>
- </databases>
- </sqlCacheDependency>
- </caching>
- </system.web>