如何在使用数据表中的数据时过滤数据网格视图? VB.net

时间:2016-12-09 14:41:02

标签: vb.net vb.net-2010

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

1 个答案:

答案 0 :(得分:1)

您可以利用BindingSource来充当DataGridView的DataSource。这样,根据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

如您所见,我已经定义了一个包含两列的DataTable,即“Id”和“TimeStamp”。然后,通过一个简单的循环,我用一些随机记录填充了我的DataTable,Id = 0到Id = 9999。

之后,我们声明一个BindingSource,指定它的DataSource是我们的DataTable。在Bindinf Source上,我们可以使用Filter属性,列名和常用逻辑运算符设置任何过滤器。

在我的示例中,我已请求过滤器位于唯一的Id列上,以显示Id介于11和19之间的记录。

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

希望这有帮助