我创建了一个文本框,希望它按名称搜索客户数据库。大多数问题都使用外部数据集,但这只是使用csv文件在程序中创建的表。
答案 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之前不需要应用过滤器:实际上,在绑定之后,每个过滤器应用程序将立即反映在可视化行上。
希望这有帮助