Vb.net 如何过滤已过滤的DataGridView[VB 2010 Express/MS Access]

Vb.net 如何过滤已过滤的DataGridView[VB 2010 Express/MS Access],vb.net,datagridview,filter,Vb.net,Datagridview,Filter,那么如何过滤已经过滤过的DataGridView呢 我有一个名为“tbl_att”的表,其中包含以下列:id_num、att_date、status 在我的表单中,有一个文本框(txt_studnum),用于过滤学生编号(id_num)。代码是: Private Sub viewatt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load provider2 =

那么如何过滤已经过滤过的DataGridView呢

我有一个名为“tbl_att”的表,其中包含以下列:id_num、att_date、status

在我的表单中,有一个文本框(txt_studnum),用于过滤学生编号(id_num)。代码是:

    Private Sub viewatt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    provider2 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
    dataFile2 = "C:\DATABASE\rams.accdb" 
    connString2 = provider2 & dataFile2
    myConnection2.ConnectionString = connString2
    da = New OleDbDataAdapter("Select [IDNum], [att_date], [status] from tbl_att", myConnection2)
    da.Fill(ds, "tbl_att")


    Dim view1 As New DataView(tables(0))
    source1.DataSource = view1
    DataGridView1.DataSource = view1
    DataGridView1.Refresh()

    End Sub
点击一个按钮执行事件:

Private Sub btn_search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_search.Click

 source1.Filter = "[IDnum] = '" & txt_idnumber.Text & "' "

End Sub
用户将输入ID号,单击按钮,DataGridView(DataGridView1)将显示过滤结果

我想做的是使用一个组合框过滤DGV1中已过滤的数据,该组合框将过滤“状态”。此组合框将“存在”、“不存在”和“延迟”作为项目,对应于“状态”列中的数据

我尝试使用以下方法制作另一个用于筛选状态的按钮:

source1.Filter = "[status] = '" & cmb_status.Text & "' "
但DGV显示所有当前、缺席或迟到的信息,而不考虑ID号。希望有人能帮我。我也为糟糕的英语道歉。谢谢

对于第二个过滤器的使用:

source1.Filter = "[IDnum] = '" & txt_idnumber.Text & "'  AND [status] = '" & cmb_status.Text & "' "

显然-您需要组合dataview的筛选器,例如,
filter=“[status]='{0}'和[IDnum]='{1}'”
,然后使用
source1.filter=string.Format(过滤器,
BTW,您的
IDnum
是一个字符串吗?因此,您不认为上面的解决方案就是这个解决方案吗?
string.format
比无休止的串联要干净得多。