根据asp.net中的用户输入搜索特定的数据库列

时间:2014-08-13 18:46:20

标签: sql asp.net vb.net

我正在根据几个用户指定的值进行搜索。其中一个是类别。我有一个名为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。我的问题是如果我从列表中选择“其他”,我不知道如何获得一些不在下拉列表中的其他随机类别。

如果可能,我将非常感谢您的建议或任何解决方案。

1 个答案:

答案 0 :(得分:1)

如果要排除类别,则需要添加AND非条件。您必须为每个项目重复此操作,或者可以编写一个循环来解决所有这些问题。

实施例

    If strSearch2.ToString() <> "Other" Then
        sqlString &= "AND (category NOT 'ExampleItem')"
    End If