gpt4 book ai didi

c# - DataView 行过滤

转载 作者:太空狗 更新时间:2023-10-29 23:08:18 26 4
gpt4 key购买 nike

我有两个要排序的 DataView,在 dgtest1 中,我尝试对包含 Typeid != 25 的数据进行排序,在 dgtest2 中我试图只显示 Typeid == 25 处的数据。

当我单步执行代码时,我在说

时抛出错误

"Cannot interpret token '!' at position 6".

谁能告诉我如何正确使用字符串行过滤器?

参数是(Data Table表,string RowFilter,string Sort,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 参数的语法与用于属性 Expression 的语法相同DataColumn 的,它不像 C# 的相等运算符

编辑 根据您在下方的评论。如果 Typeid 是文本数据类型的数据库字段,那么您需要将 RowFilter 中使用的值括在单引号之间

dgtest1.ItemsSource = new DataView(dttest1, "Typeid <> '25'", "", DataViewRowState.CurrentRows);
dgtest2.ItemsSource = new DataView(dttest1, "Typeid = '25'", "", DataViewRowState.CurrentRows);

不过这看起来有点奇怪。如果 Typeid 字段包含数字,则应将其定义为数字数据类型。

关于c# - DataView 行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18600104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com