0

mssqlデータベースからデータを取得するためのメソッドがクラスにあります。ユーザーの許可に応じて、多くのページと Web ハンドラーでこれを使用します。データベースから常にデータを取得したいわけではなく、キャッシュの利点を利用する必要があります。クライアントとして vb.net Framework 2 を使用していますが、変更したくありません。いろいろやってみましたが、うまくいきませんでした。誰か助けてくれませんか...

私の最後の試みはこれでした:

Dim myDataSet As New DataSet
myDataSet = CType(Web.HttpContext.Current.Cache.Get("myData"), DataSet)

If myDataSet Is Nothing Then
    myDataSet = GetData("select * from Table")
    Web.HttpContext.Current.Cache.Insert("myData", myDataSet, Nothing, DateTime.Now.AddSeconds(60), TimeSpan.Zero)
    'End If
End If

これはクラス (testClass.vb) のメソッドの 1 つです。何か提案をお願いします...

4

1 に答える 1

0

次のように、DataSet に割り当てる前に、Cache の値を Nothing で確認する必要があります。

Dim myDataSet As DataSet

If HttpContext.Current.Cache.Get("myData") Is Nothing

    myDataSet = GetData("select * from Table")
    HttpContext.Current.Cache.Insert("myData", myDataSet, Nothing, DateTime.Now.AddSeconds(60), TimeSpan.Zero)

Else

    myDataSet = HttpContext.Current.Cache.Get("myData") 

End If
于 2013-09-16T19:39:18.497 に答える