如何根据FieldName - Access显示数据

时间:2016-03-25 17:53:46

标签: .net database vb.net data-binding

我有它所以有一个组合框,其选择称为我的数据库的字段名。我想要它,所以当你选择“SalesCustomers”并按下搜索按钮时,它将显示所有已经勾选“Salescustomer”字段名称(AKA处于真实状态)的客户,否则会抛出错误,说明没有salescustomer的成员。我有它所以它显示所有客户端取决于ID但我现在想要这样。下面是我的数据库和我的代码的截图。

代码:

Private Sub Interest(ByVal ans As String)
    If con.State = ConnectionState.Closed Then con.Open()
    cmd = New OleDbCommand
    cmd.Connection = con
    cmd.CommandText = "Select * FROM tbl WHERE ID = ?"
    cmd.Parameters.Add("?", OleDbType.VarChar).Value = ans
    Dim reader As OleDbDataReader = cmd.ExecuteReader()
    If reader.Read() Then
        TxtCI.Text = reader(0).ToString()
    Else
        MsgBox("No interest", MsgBoxStyle.Critical, "Please reselect")
    End If
    con.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

根据以前的问题,我知道你在某个地方DataTableBindingSource。如果用户只想查看“SalesCustomer”类型,请使用过滤器:

bsCust.Filter = "SalesCustomer = True"

在其他情况下,过滤器目标是文本:

Dim FishFilter = ""
If cboFishFilter.SelectedIndex > 0 Then
    FishFilter = String.Format("Fish = '{0}'", cboFishFilter.Text)
    ' e.g.: "Fish = 'Perch'"
End If

' or via a BindingSource:
bsHdr.Filter = FishFilter
' can also use DataView.RowFilter:
dvHdr.RowFilter = FishFilter

如何应用它取决于您使用的对象。这允许/假设列表中的第一项是“(无)”或某些,以便有一种方法可以删除任何过滤器。在这种情况下,FishFilter仍为空字符串并清除过滤器。

我喜欢将其放在“应用”按钮上,以便用户可以打开列表并查看它而不会意外地应用过滤器。