1

我正在使用 Sqllite 数据库并使用五个组合框过滤 datagridview 并且它工作正常但我的问题是当我不在任何组合框中选择值时它不起作用因为我正在使用 AND 如果我将使用 OR 它会没有给我想要的结果,因为我想使用组合框中的所有选定值进行过滤。我的代码如下:

DataView dv = new DataView();
        string voterlist = "select * from voters";
        DataTable dt = Database.myAdapter(voterlist);
        dv = dt.DefaultView;
        dataGridView1.DataSource = dv;
        dv.RowFilter = string.Format("consname= '{0}' AND area = '{1}' AND pollingstn = '{2}' AND wardno = '{3}' AND policestn = '{4}'", combo_consname.SelectedItem, combo_Area.SelectedItem, combo_Polling.SelectedItem, combo_Ward.SelectedItem, combo_Police.SelectedItem);
4

1 回答 1

0

好吧,如果您希望允许用户不应用任何过滤,则RowFilter当至少其中一个ComboBox没有选定项目或根据您要提供的功能时,您不应该设置该属性,您可以RowFilter通过附加来构造:

" AND columnX = '" + yourValue + "'"

一一且仅当 yourValue 为非 null 且非空字符串时。

当然,您不必以RowFilter字符串开头AND

于 2013-04-20T14:21:51.930 回答