我有两个DataView我想要排序,在dgtest1我试图为包含a Typeid != 25和dgtest2 的数据的例外我试图只显示数据在哪里Typeid == 25.
当我单步执行代码时,我会说错误
"无法解释令牌'!' 在第6位".
有人能告诉我如何正确使用字符串行过滤器吗?
参数是(数据表表,字符串RowFilter,字符串排序,DataViewRowState)
dgtest1.ItemsSource = new DataView(dttest1, "Typeid!= 25", "", DataViewRowState.CurrentRows);
dgtest2.ItemsSource = new DataView(dttest1, "Typeid == 25", "", DataViewRowState.CurrentRows);
在第一个Dataview构造函数中用于RowFilter表达式的正确语法是
dgtest1.ItemsSource = new DataView(dttest1, "Typeid <> 25", "", DataViewRowState.CurrentRows);
                                                    ^^ 
在第二个你需要使用
dgtest2.ItemsSource = new DataView(dttest1, "Typeid = 25", "", DataViewRowState.CurrentRows);
DataView构造函数中用于RowFilter参数的语法与DataColumn 的属性Expression使用的语法相同,它与C#的等于运算符不同
编辑在下面发表评论.如果Typeid是text数据类型的数据库字段,那么您需要将RowFilter中使用的值括在单引号之间
dgtest1.ItemsSource = new DataView(dttest1, "Typeid <> '25'", "", DataViewRowState.CurrentRows);
dgtest2.ItemsSource = new DataView(dttest1, "Typeid = '25'", "", DataViewRowState.CurrentRows);
然而,这似乎有点奇怪.如果Typeid字段包含数字,则应将其定义为numeric数据类型.
| 归档时间: | 
 | 
| 查看次数: | 1252 次 | 
| 最近记录: |