0

如何从“主题(数据库)”过滤或限制我的组合框显示。我不想从“主题”中添加所有内容,这就是 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
4

2 回答 2

1

BindingSourceFilter属性设置为您拥有的任何过滤标准。

我相信您的数据库中没有大量数据。您已经填写了数据集。现在您应该做的是将您的 ComboBox 与 a 绑定BindingSource并将其DataSource属性设置为您的 DataTable。接下来设置DisplayMemberValueMember属性到适当的列名。然后在运行时,你可以像这样设置你BindingSourceFilter属性:

YourBindingSource.Filter = "subject LIKE '%ad%'"

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

于 2013-10-01T11:43:25.103 回答
0

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

因此,您应该将其作为 where 子句添加到 SQL 中,如下所示:

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

注意:如果您允许用户提供值,则应在命令上使用参数,但由于您似乎需要硬编码值,因此可以按上述方式进行。

于 2013-10-01T14:16:06.643 回答