使用DataSet过滤两个不同的事物

时间:2018-11-18 12:36:17

标签: c# filter

我现在可以过滤一件事(输入是textbox)。但是我想过滤two textboxes。这该怎么做? 我使用的是DataSet,我在其中添加了queryselect * from question where questioncat = @questioncat。 在FillBy中,我正在使用此query。 我也想对问题filter

进行(where question = @question)

代码:

private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            if (txtBxSearch.Text == "") 
            {
                hR5DataSetVraagTableAdapter.Fill(hR5DataSet.question);
            }
            else
            {
                hR5DataSetVraagTableAdapter.FillBy(hR5DataSet.question, txtBxSearch.Text); 
            }
        }

1 个答案:

答案 0 :(得分:1)

如果要动态设置过滤条件,则可以尝试使用带有参数的条件来进行过滤。

通过代码跳过所有空参数,动态地为SQL查询构建过滤器语句

private void btnSearch_Click(object sender, RoutedEventArgs e)
{

    var sqlStr = new System.Text.StringBuilder();
    sqlStr.AppendLine("select * from question where 1 = 1 ");

    if(!string.IsNullOrEmpty(txtBxSearch.Text)){
        sqlStr.AppendLine(" AND questioncat = @questioncat ");
         Parameters.Add(new SqlParameter("@questioncat", txtCondition1.Text));
        //and add parameter for your command.
    }

    if(!string.IsNullOrEmpty(txtBxSearch1.Text)){
        sqlStr.AppendLine(" AND questioncat1 = @questioncat1 ");
        Parameters.Add(new SqlParameter("@questioncat1", txtCondition2.Text));
        //and add parameter for your command.
    }
    //.... do your SQL execute.

}

注意

WHERE 1 = 1使您可以通过AND操作来设置条件。