【发布时间】:2017-05-02 13:29:26
【问题描述】:
我遇到了过滤数据表的问题。一列称为BANF-Nummer。使用过滤器,我收到一条错误消息。我为此编写了以下代码:
FilterExpression = "(Kontierungsobjekt = 'Kostenstelle' OR Kontierungsobjekt = 'Co-Auftrag') AND BANF-Nummer > '-1'";
dv.RowFilter = FilterExpression; //ERROR!
错误信息是:
找不到列 [Nummer]
下面链接有另一个类似问题的帖子: Unable to Have (-) Dash in DataView Filter C#
此修复无法解决我的问题。如果我试试这个:
FilterExpression = "(Kontierungsobjekt = 'Kostenstelle' OR Kontierungsobjekt = 'Co-Auftrag') AND [BANF-Nummer] > '-1'";
dv.RowFilter = FilterExpression; //错误!
那么错误信息是:
找不到列 [BANF-Nummer]
如果我用另一列测试此功能,例如 Kostenstelle,它可以完美运行。所以错误在名称 BANF-Nummer 中是确定的,我无法更改。
这是我的问题的屏幕截图: enter image description here
将不胜感激每一个建议。
【问题讨论】:
-
转义字符(
[和])可能取决于数据库类型。 -
@UweKeim:它与数据库无关,因为 DataTable 是内存中的集合。文档在这里(备注部分):msdn.microsoft.com/en-us/library/…
-
dv.Table.Columns.Contains("BANF-Nummer")返回什么?我怀疑false -
不,Uwe,那也不行……谢谢。
-
您的屏幕截图显示为
AND ([BANF-Nummer]) > '-1',而您的问题显示为AND [BANF-Nummer] > '-1'。 (注意方括号周围的(和))。
标签: c# datatable dataview rowfilter