Multi-Criteria通过sb后端的vb.net中的三个combox进行搜索

时间:2014-12-22 19:27:34

标签: sql vb.net search datagridview combobox

我目前在VB.net中使用sql后端服务器。我有一个带有datagridview的Windows窗体应用程序和3个组合框,它们包含来自datagridview中三个不同列的数据。到目前为止,我已将IF语句用于多标准搜索。事实证明,这种方法是编写此代码的一种漫长而低效的方法。它实际上是一个长期的IF语句,如果combobox1.selectedindex不等于1并且组合框2和3仍然在-1索引上,那么只用第一个组合框搜索。然后我为组合框填充的每一种可能性编写代码。无论是2个还是全部,或者只是其中之一。我想知道是否有一个可靠的教程或循环这些组合框的方法,使这段代码快速而简单。

1 个答案:

答案 0 :(得分:1)

这样的事情应该让你开始。它定义了要检查的组合框列表,然后确定哪些组合框具有SelectedIndex <> -1。如果没有,则记录该值。

' Build a list of values based on combo boxes with a selected index.
Dim values As New List(Of String)

' Build an array of combo boxes we want to process.
For Each cb As ComboBox In New ComboBox() {comboBox1, comboBox2, comboBox3}
    ' Check if the current combo box has an index selected.
    If cb.SelectedIndex <> -1 Then
        ' It does - record its value.
        values.Add(cb.Text)
    End If
Next

' Do something with the values.
MessageBox.Show(String.Join(", ", values.ToArray))

' For example, build a where clause.
' If you do this, be sure to sanitize the values.
MessageBox.Show("WHERE 0=1 " & String.Join(" OR Field=", values.ToArray))