を示す次のようにIコードの比較的単純な部分を有する:奇妙な問題 - 最後の行が
Dim oShow As DataSet = Nothing
Dim cacheKey As String = String.Format("AsyncCacheFor_agenda_{0}", ShowID)
If Not IsNothing(Cache(cacheKey)) Then
oShow = DirectCast(Cache(cacheKey), DataSet)
Else
oShow = DataServers.dsTMW.GetAgenda(ShowID, 0, "", 0, True)
Cache.Insert(cacheKey, oShow, Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, New TimeSpan(1, 0, 0))
End If
phSearch.Visible = True
oShowRow = oShow.Tables(0).Rows(0)
oTracks = oShow.Tables(1)
oSearchResults = oShow.Tables(5)
If Not IsNothing(oSearchResults) AndAlso oSearchResults.Rows.Count > 0 Then
rptSearch.Visible = True
phNoResults.Visible = False
rptSearch.DataSource = oSearchResults
rptSearch.DataBind()
Else
rptSearch.Visible = False
phNoResults.Visible = True
End If
「rptSearch」はRepeater
とGetAgenda()
方法を介してデータベースからデータセットを読み出しますストアドプロシージャ。このデータセットには6つの異なるテーブルがあります。データセットがデータベースから読み取られると、Repeater
は36行、予想される結果を表示します。キャッシュから読み取ると、最後の1行しか表示されません。奇妙なのは、私がデバッグするとき、私は両方の場合でoSearchResults.Rows.Count = 36
を見ることです。
なぜこのようなことが起こるのでしょうか?
リピータのコードを入力できますか? – ivowiblo