使用DataTable数据时,如何过滤DataGridView?vb.net



我已经创建了一个文本框,并希望它通过名称搜索客户的数据库。大多数问题是使用外部数据集,但这只是使用程序在程序中使用CSV文件创建的表。

您可以利用BindingSource的优势,用作数据杂志的数据源。这样,在bindingsource filter属性上作用,您可以根据您的列名设置任何类型的过滤器。

请检查以下片段:

    Dim dt As New DataTable("Sample")
    dt.Columns.Add("Id")
    dt.Columns.Add("TimeStamp")
    For i As Int32 = 0 To 9999
        dt.Rows.Add(New Object() {i, DateTime.Now})
    Next
    Dim bs As New BindingSource
    bs.DataSource = dt
    bs.Filter = "Id > 10 AND Id < 20"
    DataGridView1.DataSource = bs

如您所见,我已经定义了一个具有两个列的数据表,即" ID"one_answers" Timestamp"。然后,使用一个简单的循环,我用一些随机记录填充了我的数据表,对于ID = 0到ID = 9999。

之后,我们声明了bindingsource,指定其数据源是我们的数据表。在Bindinf源上,我们可以使用过滤器属性,列名和常见的逻辑运算符设置任何过滤器。

在我的示例中,我要求过滤器在唯一的ID列上,以可视化那些ID在11到19之间的记录。

然后,我们可以将BindingSource用作DataGridView DataSource。并请注意,在分配DataGridView DataSource之前,不需要应用过滤器:实际上,在绑定后,每个过滤器应用程序将立即在可视化的行上反映。

希望这有帮助

最新更新