Asp.net

如何正確過濾數據表(datatable.select)

  • July 31, 2020
Dim dt As New DataTable
Dim da As New SqlDataAdapter(s, c)

       c.Open()
       If Not IsNothing(da) Then
           da.Fill(dt)
           dt.Select("GroupingID = 0")
       End If

       GridView1.DataSource = dt
       GridView1.DataBind()
       c.Close()

當我呼叫 da.fill 時,我將插入查詢中的所有記錄。然後我希望過濾它們以僅顯示 GroupingID 等於 0 的那些。當我執行上面的程式碼時。我看到了所有數據,過濾器不起作用。請你能告訴我如何讓它正常工作。謝謝。

dt.Select()返回一個 DataRows 數組。

為什麼不使用 DataView?

DataView dv = new DataView(dt);
dv.RowFilter = "GroupingID = 0";
GridView1.DataSource = dv;

以防萬一…認為您的 VB.NET 程式碼中有一個小錯字。它應該是 dv.RowFilter 而不是 dv.RowStateFilter,所以:

Dim dt As New DataTable
Dim dv As New DataView(dt)
dv.RowFilter = "GroupingID = 0"
DataGridView1.DataSource = dv

引用自:https://stackoverflow.com/questions/3060194