首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么合并不能与RowFilter一起工作?

为什么合并不能与RowFilter一起工作?
EN

Stack Overflow用户
提问于 2009-09-05 17:46:27
回答 1查看 622关注 0票数 0

我正在WPF中开发一个小应用程序。我有一个名为ListBoxNameListBox,它的ItemsSource属性被设置为DataView,因此显示了一个客户名称列表。名称由三个部分组成:FirstNameMiddleNameLastName。我使用了一个转换器来显示列表中客户的全名。一切都很好(我认为这一级别的细节足以得到总体情况)。

现在,我希望在上启用NameListBox过滤,这样列表应该只显示那些包含在名为CustomerNameSearchBoxTextBox中输入的文本的客户名称。

通过在互联网上搜索,我偶然发现了RowFilter属性的DataView -并且也玩了一点。现在当我试着

代码语言:javascript
运行
复制
private void CustomerNameSearchBox_TextChanged(object sender, TextChangedEventArgs e)
{
  //((DataView)NameListBox.ItemsSource).RowFilter = @"COALESCE(FirstName+' '+MiddleName+' '+LastName, COALESCE(FirstName+' '+LastName, COALESCE(FirstName, LastName))) LIKE '%" + CustomerNameSearchBox.Text + @"%'";
    ((DataView)NameListBox.ItemsSource).RowFilter = @"ISNULL(FirstName+' '+MiddleName+' '+LastName, ISNULL(FirstName+' '+LastName, ISNULL(FirstName, LastName))) LIKE '%" + CustomerNameSearchBox.Text + @"%'";
}

给了我预期的结果,。但是等等..。这里有奇怪的东西!

正如您所看到的,这两行的结构都是相同的--只有COALESCE而不是ISNULL。但是,当我取消注释第一行(并注释掉第二行)时,它不起作用!,它在运行时抛出一个异常,在运行时说是

虽然ISNULL在这一刻达到了我的目的,但我真的很想知道为什么会发生这种异常。而且,即使是一件简单的事情

代码语言:javascript
运行
复制
(...).RowFilter = @"COALESCE(FirstName,'')";

似乎不起作用!(这意味着它不仅仅是一个句法问题)

有人能解释一下我的这种行为吗?提前谢谢。

标签: WPF ISNULL RowFilter

EN

回答 1

Stack Overflow用户

发布于 2010-03-11 16:43:57

Rowfilter本身不是SQL,功能范围有限

MSDN:表达式语法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1383871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档