0

このコードは .NET 2.0 で以前に使用したことがあり、長い間良好に機能しています。4.0 がこれに関係しているかどうかはわかりませんが、出力については説明できません。このコードを要約しました:

Sub page_prerender(s As Object, e As EventArgs)
    cache_list()
    Dim dstar As DataSet = Cache("dstallarchives")
    Dim viewar As DataView = dstar.Tables("archive").DefaultView

    Response.Write(viewar.Count & "<br/>") 'output 891
    viewar.RowFilter = "customerid=25"
    Response.Write(viewar.Count & "<br/>") 'output 52

    'clear the dataview, create it fresh from the cache
    viewar = New DataView
    viewar = Cache("dstallarchives").tables("archive").defaultview
    Response.Write(viewar.Count) 'output 52???
End Sub

Cache_list は、891 レコードのデータセットにテーブルを挿入します。52 は customerid=25 です。891 - 52 - 891 になるはずの出力を上から見ることができます。通常、中間の dstar データセットは作成しませんが、キャッシュ オブジェクトから直接データビューを作成します。しかし今、出力は私にとってさらに意味がありません。私のラップトップが 3 階から落下する前に助けてください。

4

1 に答える 1

0

以前のコードがなぜそのように動作したのかはまだわかりませんが、問題の解決策を見つけました。DataViewを宣言するときは、完全なコンストラクターを使用してください。

viewarchive = New DataView(Cache("dstallarchives").tables("archive"), "", "", DataViewRowState.CurrentRows)

誰かが私にこれを説明することができれば、私はまだそれを聞きたいです!

于 2012-05-10T01:30:00.223 に答える