我有它所以有一个组合框,其选择称为我的数据库的字段名。我想要它,所以当你选择“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
答案 0 :(得分:0)
根据以前的问题,我知道你在某个地方DataTable
和BindingSource
。如果用户只想查看“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
仍为空字符串并清除过滤器。
我喜欢将其放在“应用”按钮上,以便用户可以打开列表并查看它而不会意外地应用过滤器。