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