SQL データベースのバージョンによっては、SqlCacheDependency を使用できる場合があります。
あなたのweb.configで非常に簡単に
<caching>
<sqlCacheDependency pollTime="10000" enabled="true" >
<databases>
<add connectionStringName="ConnectionString" name="Coverage"/>
</databases>
</sqlCacheDependency>
</caching>
次に、コードで
private void BindData()
{
// if null then fetch from the database
if (Cache["CoverageDataTable"] == null)
{
// Create the cache dependency
SqlCacheDependency dep = new SqlCacheDependency("Coverage", CoverageDataTable");
string connectionString = ConfigurationManager.ConnectionStrings[
"ConnectionString"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionString);
SqlDataAdapter ad = new SqlDataAdapter("SELECT ColA, ColB, ColC " +
"FROM CoverageDataTable", myConnection);
DataSet ds = new DataSet();
ad.Fill(ds);
// put in the cache object
Cache.Insert("CoverageDataTable", ds, dep);
}
gvCoverageDataTable.DataSource = Cache["CoverageDataTable"] as DataSet;
gvCoverageDataTable.DataBind();
}
ここでいくつかの背景を見つけることができます: SqlCacheDependency クラスを使用した ASP.NET でのキャッシュ