我正在根据几个用户指定的值进行搜索。其中一个是类别。我有一个名为Other
的类别,其他类别只是固定列表项,每当我为搜索选择一个类别时,就会显示该匹配类别的行。但是在Other
的情况下,我想显示除了那些固定列表项之外的数据库列中的所有类别。只要选择了这些固定列表项,它们就会显示出来。我希望我明白这个问题。以下是我的搜索查询和条件的一部分:
Dim strSearch1 As String = ddlStatus.SelectedItem.Text
Dim strSearch2 As String = ddlCategory.SelectedValue
Dim strSearch3 As String = ddlAge.SelectedValue
Dim strSearch4 As String = txtCommunity.Text
sqlString = "SELECT id, name, community, age, category, status "
sqlString &= "FROM feedback WHERE (id > 0) "
If strSearch1.ToString() <> "" Then
sqlString &= "AND (status = '" + strSearch1.ToString() + "')"
End If
低于if
条件只适用于固定类别。
If strSearch2.ToString() <> "" Then
sqlString &= "AND (category = '" + strSearch2.ToString() + "')"
End If
If strSearch3.ToString() <> "" Then
sqlString &= "AND (age = '" + strSearch3.ToString() + "')"
End If
If strSearch4.ToString() <> "" Then
sqlString &= "AND (community LIKE '" + strSearch4.ToString() + "%')"
End If
我在下拉列表中修复了项目列表。例如:General,Architecture,Fields和Other。我的问题是如果我从列表中选择“其他”,我不知道如何获得一些不在下拉列表中的其他随机类别。
如果可能,我将非常感谢您的建议或任何解决方案。
答案 0 :(得分:1)
如果要排除类别,则需要添加AND非条件。您必须为每个项目重复此操作,或者可以编写一个循环来解决所有这些问题。
实施例
If strSearch2.ToString() <> "Other" Then
sqlString &= "AND (category NOT 'ExampleItem')"
End If