2017-05-30 98 views
0

我有一個我已經設置了一個RowFilter數據集:如何在DataSet上使用RowFilter後訪問過濾的記錄?

DateTime minDateVal = (DateTime)ds.Tables[0].Compute("Min(DateTimeField)", "anotherField = 12"); 

ds.Tables[0].DefaultView.RowFilter = "anotherField=12 and DateTimeField='" + minDateVal + "'"; 

所以應用該過濾器後,我得到滿足的條件,但我怎麼能訪問到過濾行的行(那些滿足的RowFilter條件) ?

有些疑惑:

  • 要獲得滿足的RowFilter是正確的下面做的行數?

    ds.DefaultView.Count

    ds.DefaultView.recordCount

  • 要訪問應用的RowFilter過濾後的行是正確的下面做什麼?

爲0行:

ds.DefaultView.RowViewCache[0]["MyColumn1"].ToString() 

在行1:

ds.DefaultView.RowViewCache[1]["MyColumn1"].ToString() 

等。

回答

2

您可以使用數據視圖的ToTable()得到篩選數據視圖返回的DataTable

DataView dv = ds.Tables[0].DefaultView; 

dv.RowFilter = "anotherField=12 and DateTimeField='" + minDateVal + "'"; 

Datatable result = dv.ToTable(); 
+0

ToTable只可用,因爲.NET Framework 2.0和我已經修改了使用.NET 1.1的遺留項目......憑什麼我這樣做?使用我在我的帖子中評論的方法? – user1624552