9
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 的那些。当我运行上面的代码时。我看到了所有数据,过滤器不起作用。请你能告诉我如何让它正常工作。谢谢。

4

3 回答 3

22

dt.Select()返回一个 DataRows 数组。

为什么不使用 DataView?

 DataView dv = new DataView(dt);
 dv.RowFilter = "GroupingID = 0";
 GridView1.DataSource = dv;
于 2010-06-17T08:59:57.830 回答
2

以防万一...认为您的 VB.NET 代码中有一个小错字。它应该是 dv.RowFilter 而不是 dv.RowStateFilter,所以:

Dim dt As New DataTable
Dim dv As New DataView(dt)
dv.RowFilter = "GroupingID = 0"
DataGridView1.DataSource = dv
于 2020-07-31T20:39:43.533 回答
1

接受的答案是正确的,尽管它应该在 vb.net 中给出以更好地使提出问题的人受益。这是在 VB.Net 中:

Dim dt As New DataTable:Dim dv As New DataView(dt):dv.RowStateFilter = "GroupingID = 0":DataGridView1.DataSource = dv
于 2020-07-26T09:13:49.877 回答