Vb.net 如何查找包含特定列的bindingsource

Vb.net 如何查找包含特定列的bindingsource,vb.net,Vb.net,尊敬的先生, 我正在像这样将筛选器应用于bindingsource Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged If ComboBox1.SelectedValue > 0 Then Dim myID As Integer

尊敬的先生, 我正在像这样将筛选器应用于bindingsource

Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
        If ComboBox1.SelectedValue > 0 Then
            Dim myID As Integer
            myID = ComboBox1.SelectedValue
            If myDataset.myTable.Columns.Contains("catid") Then
                BindingSource1.Filter = "catid =" & myID
            end if
       end if
但在加载和关闭表单时,会出现一个错误,即字段catid不存在。 如何找到绑定到具有特定列catid的datatable的bindingsource?如果只存在过滤器,则应用过滤器? 你忠实的
Murulimadhav

您知道如何检查BindingSource1.DataSource的类型是否为DataTable吗?那么…不,怎么做?我已经给你答案了。因此,如果它是一个数据表,那么您所要做的就是将BindingSource1.DataSource直接强制转换为DataTable,并检查.Columns.中是否有任何列包含名为catid的列,然后应用筛选器。一个问题可能是,在创建CBO时触发事件,但不确定它为什么会在表单关闭时触发。显示了如何在加载期间抑制该事件。在构建数据源之前可能会调用该事件,这就是我提供链接的原因。您是否收到错误/异常,如果是,是什么?