【问题标题】:Dropdown showing Duplicate Values显示重复值的下拉菜单
【发布时间】:2019-08-31 18:39:58
【问题描述】:

我有 4 个下拉列表,我正在使用一个数据库表来绑定下拉列表。但是在下拉菜单中,我得到了重复的值。我在 select 语句中使用了 Distinct 但我没有获取唯一值,因为它有 4 列。

那么有什么方法可以获取唯一值或无论如何不获取重复值。

【问题讨论】:

  • 您能否在问题中添加您的下拉菜单绑定 c# 代码!
  • 这是简单的绑定,首先我使用查询并存储在数据表中,然后将源提供给下拉列表,为文本提供列名并绑定,对不同列的所有内容执行相同的操作。截至目前我在家,所以我无法共享代码。
  • 找到解决方案并修复代码会容易得多,请在办公室共享代码,我相信这应该是一个简单快捷的修复。
  • 好的,我会在星期一和你分享代码

标签: c# asp.net oracle dropdown


【解决方案1】:

如果

  • 有 4 列
  • 你申请了DISTINCT

你是如何设法得到重复的?什么重复? DISTINCT 将它们删除,因此不应该有任何行与这 4 个值匹配。

盲目猜测:如果您想为其中一列获取不同的值并且不关心其余列,那么这样的事情可能会有所帮助:

select 
  id,                     --> this is that "unique" value you're looking for
  max(name),              --> use one of aggregates for the rest of columns, ...
  max(address),           --> ... such as MAX in my example
  max(phone)
from your_table
group by id               --> as aggregates require GROUP BY, you don't need DISTINCT

如果仍然没有帮助,恐怕您必须更好地解释问题。不要忘记提供测试用例。

【讨论】:

  • 我有 4 列,我在 4 个不同的下拉列表中绑定了 4 列。在数据库中的值类似于:- 第 1 列- A、B、C、A、A | 2-D、E、F、F、G 列 |第 3 列-K、L、M、N、O
【解决方案2】:

Distinct() 需要知道如何判断集合中的一个项目是否与另一个项目匹配。 试试这样的。

items.Distinct((itemA, itemB) => string.Equals(
    itemA.Name, itemB.Name, StringComparison.InvariantCultureIgnoreCase())

【讨论】:

    【解决方案3】:

    检查您的绑定。你应该只绑定

    if(!IsPostBack)
    {
       //Put the logic for the Dropdown DataBind here
    }
    

    如果您不这样做,您会在每次回发时获得一组新的下拉值,这就是您获得重复值的方式。 如果不是 Binding 可以发布你的 SQL 语句吗?

    【讨论】:

    • 实际上我有 4 个下拉菜单,我正在从数据库中获取数据。在每个 drpdwn 中,我都使用不同的列。所以在数据库中我有重复的值,这是重复的原因。我使用了 distinct,但它不起作用。
    • 如果您执行 4 个不同的选择语句会怎样。我的意思是 1 仅包含您要使用的值并将 DataBind 到相应的下拉列表。这应该可以与 distinct 一起使用。
    • 这是有效的,因为我是编程线的新手。所以我在想有没有办法通过一次点击数据库来做到这一点。
    • 这就是我在最初回答中发布的内容。在 If(!IsPostback) 中调用数据库。然后你只访问数据库一次。您可以从该单个数据库表中对每个下拉列表进行 DataBind。
    • !isPostback 中的所有代码,但问题是数据库中的某些列具有重复值,并且 distinct 没有给出 4 列的不同值。我必须对所有下拉列表使用单独的选择查询。所以我问这是唯一的选择还是我们可以用更好的方式来做。
    猜你喜欢
    • 2018-03-28
    • 2020-10-02
    • 2012-05-27
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    相关资源
    最近更新 更多