【问题标题】:Remove/Hide duplicates from combobox从组合框中删除/隐藏重复项
【发布时间】:2013-08-19 08:23:23
【问题描述】:

我有一个应用程序,它有一个显示数据的数据网格,如下例所示

        FundID ClientName FundName
          1      Client1    Arch1
          2      Client1    Build3
          3      Client2    Build2

我在数据网格中显示了它,以便一个客户可以拥有许多资金。 但是,我有一个组合框,允许用户按某个客户端过滤结果。我的问题是单击组合框会出现这样的列表

           Client 1
           Client 1
           Client 1
           Client 1
           Client 2
           Client 2
           Client 3

我想让我的组合框不显示重复项。 ,虽然我看过一些代码示例,但我想知道是否有任何方法可以使用属性菜单是 vs2012 或任何简单的代码方法

只是为了进一步澄清这个问题,我的主要目标是找出是否有一种方法可以使用 sql 或其他方式来编辑组合框中显示的内容,同时不影响数据网格中显示的内容

【问题讨论】:

  • 请提供一些关于如何填充组合框的代码。它可能只是缺少 distinct() 方法。
  • @Serv 看到这是奇怪的部分,对于组合框,我在属性菜单中将数据源设置为“InventoryBindingsource”,并将显示和值成员设置为“ClientName”但我找不到任何东西我可以指定它是不同的,而对于实际填充数据网格,我能够使用 sql 将资金设置为不同...这样做意味着我的基金 Combobox 很好,只显示不同的值,但我不确定如何为我的客户端组合框复制这个,因为我需要它在数据网格中显示重复的客户端名称,而不是在组合框中。抱歉,我无法添加屏幕
  • @serv 拍摄,但我的代表不够高,无法添加图片

标签: c# visual-studio-2012 datagrid combobox


【解决方案1】:

你可以在 sql 端使用 group by。使用 group by 后,你一次只会得到一个名字

按客户名称分组

当您使用 group by 时,您必须只选择 FundID 和 ClientName 以便获得唯一的名称。

【讨论】:

  • 试过 usign group by 并得到一个错误说我不能使用它,因为没有聚合函数,有没有办法为组合框简单地放置 sl 代码,以免影响数据网格?
  • 我能知道sql查询吗?
  • 查询是SELECT DISTINCT ClientName, Fund.FundName, FK_Fund, ISIN FROM Client, Fund
  • 这是填充数据网格的查询,这很好,但显示重复的客户名称(很好)但不同的基金名称(这是我想要的)但我希望组合框只显示单个值
  • 如果不需要基金名称,那么只需将其删除即可得到正确的结果
猜你喜欢
  • 2018-11-22
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多