如何从数据库中过滤或限制我的组合框显示?

时间:2013-10-01 11:41:47

标签: vb.net

如何从“subject(数据库)”过滤或限制我的组合框显示。我不想从“主题”添加所有列表,这就是为什么Label.text =“ad”,我希望组合框只显示那些在数据库上有“广告”且不应全部显示的人。我真的很感激任何帮助。

conn = New OleDbConnection(Get_Constring)

        Dim sSQL As String = ("SELECT subject FROM student order by username")

        Dim da As New OleDbDataAdapter(sSQL, conn)

        Dim ds As New DataSet

        da.Fill(ds)

        cmbsection.ValueMember = "subject"

        cmbsection.DataSource = ds.Tables(0)

        cmbsection.SelectedIndex = 0

        End If

    Catch ex As Exception

        MsgBox("ERROR : " & ex.Message.ToString)

    End Try

2 个答案:

答案 0 :(得分:1)

使用BindingSourceFilter属性设置为您拥有的任何过滤条件。

我相信您的数据库中没有大量数据。您已经填充了DataSet。现在,您应该将ComboBox与BindingSource绑定,并将其DataSource属性设置为您的DataTable。接下来将DisplayMemberValueMember属性设置为相应的列名称。然后在运行时,您可以设置BindingSource的{​​{1}}属性,如下所示:

Filter

这将仅显示ComboBox中其主题列中包含字符串“ad”的记录。

答案 1 :(得分:0)

理想情况下,您应该限制来自数据库的数据,而不是在本地获取所有数据,然后将其限制在客户端上。数据库旨在为您限制数据,如果限制数据库中的数据,您将通过线路(网络)以更少的带宽更快地获得数据。

因此,您应该将它作为where子句添加到SQL中:

Dim sSQL As String = ("SELECT subject FROM student WHERE Subject = 'ad' order by username")

注意:如果您允许用户提供该值,您应该在命令中使用参数,但由于看起来您需要硬编码值,您可以按上述方式执行。