如何正确过滤数据表(datatable.select)

时间:2010-06-17 08:54:29

标签: asp.net vb.net filter sqldataadapter datatable.select

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的那些。当我运行上面的代码时。我收到了所有数据,过滤器无法正常工作。请问您能告诉我如何使其正常工作。感谢。

3 个答案:

答案 0 :(得分:14)

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

为什么不使用DataView?

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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