Фильтрация двух разных вещей с помощью DataSet - PullRequest
0 голосов
/ 18 ноября 2018

Теперь я могу фильтровать по одной вещи (входные данные textbox). Но я хочу фильтровать по two textboxes. Как это сделать? Я использую DataSet, я добавил к этому query: select * 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 голосов
/ 18 ноября 2018

Если вы хотите динамически установить условие фильтра, вы можете попробовать использовать условие с параметром для его создания.

Динамически построить оператор фильтра для запроса 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...