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