Cache からデータを取得するには、そのデータを表すキーと値を指定します。次に、データをページに表示するコードを作成します。
キャッシュされたアイテムの値を取得するには
DataView オブジェクト
Source
を作成し、キーMyData1
が割り当てられたキャッシュされたデータを取得し、そのデータをSource
に割り当てるコードを次に示します。次に、データがまだ Cache 内に格納されているかどうかを確認し、MyDataGrid
という名前の DataGrid Web サーバー コントロールの DataSource プロパティとしてSource
を割り当てます。次に、そのデータをMyDataGrid
にバインドします。DataView Source; Source = (DataView)Cache["MyData1"]; if(Source != null ) { MyDataGrid.DataSource = Source; MyDataGrid.DataBind(); } [Visual Basic] Dim Source As DataView Source = CType(Cache("MyData1"), DataView) If Not (Source Is Nothing) Then MyDataGrid.DataSource = Source MyDataGrid.DataBind() End If
アイテムが Cache に存在するかどうかをチェックするには
データ ソースまたはデータ セットが Cache 内に存在しない場合、アプリケーションがどのように応答するかはより複雑な問題です。キャッシュされたデータの有無をチェックするために、上に示したプロシージャのコードを変更した例を次に示します。データがキャッシュに存在しない場合、この例ではそのデータを再作成し、Cache に追加します。
DataView Source = (DataView)Cache["MyData1"]; if (Source == null) { SqlConnection myConnection = new SqlConnection("server=localhost;Integrated Security=SSPI;database=pubs"); SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection); DataSet ds = new DataSet(); myCommand.Fill(ds, "Authors"); Source = new DataView(ds.Tables["Authors"]); Cache["MyData1"] = Source; } MyDataGrid.DataSource=Source; MyDataGrid.DataBind(); [Visual Basic] Dim Source As DataView = CType(Cache("MyData1"), DataView) If Source Is Nothing Then Dim myConnection As New SqlConnection("server=localhost;Integrated Security=SSPI;database=pubs") Dim myCommand As New SqlDataAdapter("select * from Authors", myConnection) Dim ds As New DataSet() myCommand.Fill(ds, "Authors") Source = New DataView(ds.Tables("Authors")) Cache("MyData1") = Source End If MyDataGrid.DataSource = Source MyDataGrid.DataBind()
参照
アプリケーション データのキャッシュ | キャッシュへのアイテムの追加 | キャッシュからのアイテムの削除 | キャッシュからアイテムが削除されたときのアプリケーションへの通知