我现在可以过滤一件事(输入是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);
}
}
答案 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
操作来设置条件。