使用ASP.net/C#的文本框和下拉列表进行数据库表搜索

时间:2010-02-10 11:55:31

标签: c# asp.net search textbox drop-down-menu

我正在使用ASP.net/C#构建一个小型网站,我想知道如何使用文本框和下拉列表实现简单的搜索功能。

数据源是产品表,在文本框中输入产品名称,下拉列表中是类别。 (我已设法使用可用类别填充下拉列表)

必须遵循以下条件:

  • 如果文本框和下拉列表均为空白,则必须列出所有产品;

  • 如果选择了某个类别,则必须列出该类别的所有产品;

  • 如果仅填写文字,则会显示所有匹配的产品;

如果可能的话,一些代码片段将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

我将假设您使用标准DataSet,并且您正在从Products表中加载所有数据,您应该查看以下链接之一:

ADO.NET: Filter Data
Filtering and Sorting in Datasets
Web Forms DataGrid and DataSet Programming

答案 1 :(得分:0)

您熟悉SQL吗?如果是这样,您所要做的就是为每个条件创建一个不同的查询,或者一个查询带有参数,该参数将指示要添加到select语句的条件,例如:

  • 如果文本框和下拉列表都是 空白所有产品必须列出;

    SELECT * FROM Products

  • 如果选择所有产品的类别 必须列出该类别;

    SELECT * FROM Products WHERE Category = @Category

  • 如果只填写文字,则为所有产品 显示匹配

    SELECT * FROM Products WHERE ProductName = @ProductName

这是最简单的方法,@ Category和@ProductName是包含文本框和下拉列表值的参数。 您仍然需要添加代码来决定何时执行每个查询并使用结果填充控件...假设下拉列表中的第一项不是实际类别,但可能是某些文本作为“选择类别” ,这是一个如何处理第一个条件的例子:

If (string.IsNullOrEmpty(txtProductName.Text && ddlCategory.SelectedIndex == 0)
{
    //execute query#1
    GridViewSearchResults.DataSource = DataSet1; //This dataset is populated with data from the first query "select * from products"
    GridViewSearchResults.DataBind();
}

如果上述内容没有意义,我建议您继续阅读有关此主题的更多内容。上面的示例不是编写生产应用程序的理想方式,它非常简单,只是为了让您了解如何做。