2011-12-14 21 views
0

シナリオは、SqlDataSourceからのデータを表示するGridViewを備えたASPXページです。これは、最適なクエリに基づいたデータベースビューから行を選択するように構成されています(現時点で修正する時間がありません)。ビュークエリの結果をキャッシュするのに、どのASP.NETキャッシュテクニックを使用する必要がありますか?

キャッシュの100ページの章に大きなASP.NETブックを開いて、それがかなり複雑であることを認識しました。だから誰もがこのシナリオを想像して、問題を解決するために使うテクニックを教えて(クエリを高速化する以外に)。

また、GridViewにはソート可能な列があり、UpdatePanelに含まれています。

ありがとうございます。

答えて

3

これは、それがこのようなもののような単純な可能性があり、複雑である必要はありません。もちろん

public DataSet GetMyViewData() 
{ 
    var results = HttpContext.Current.Cache["myViewResults"] as DataSet; 

    if(results == null) 
    { 
     results = GetMyQueryResults(); 
     HttpContext.Current.Cache["myViewResults"] = results; 
    } 

    return results; 
} 

、それはデータがどのように大規模な、あなたがそれを必要とするどのように新鮮な、などに依存しますキャッシュからの追加や取得はこれで簡単です。

さらに、Webフォームを使用している場合、Selectステートメントの結果をキャッシュするだけであれば、SqlDataSourceコントロールはEnableCachingCacheDurationポリシーを公開します。以下に示すように、コントロールのプロパティを設定するだけです。

MSDNから

<asp:SqlDataSource 
       id="SqlDataSource1" 
       runat="server" 
       DataSourceMode="DataSet" 
       ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" 
       EnableCaching="True" 
       CacheDuration="20" 
       SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"> 
      </asp:SqlDataSource> 
+0

を無効にする、私はnullに設定仮定しますか? –

関連する問題