从绑定到数据集的组合框中删除重复项

Posted

技术标签:

【中文标题】从绑定到数据集的组合框中删除重复项【英文标题】:Remove duplicates from combobox which is bind to dataset 【发布时间】:2012-09-27 06:03:32 【问题描述】:

我的项目中有一个xml file。我正在通过以下代码将文件读取到组合框cbProduct。问题是cbProduct 显示重复的文本值。如何区分它们?

我经历了一些links,但这种方法与数据集无关。 我实现了以下代码:

DataSet ds = new DataSet();
ds.ReadXml(@"..\..\stock.xml");
cbProduct.DataSource = ds.Tables[0];
cbProduct.DisplayMember = "productname";

可选:如果你有时间,如果你解释这个过程会很有意义,因为我是 .net 的新手,或者提供一个至少可以参考的链接(不是 msdn)。

请帮忙。 提前致谢。

【问题讨论】:

【参考方案1】:

您可以将不同的values from database 或您可以将distinct values from c# data table 放入新的 c# 数据表并将其绑定到下拉列表。 How to select distinct value.

【讨论】:

感谢您的回复。我试过这个,我得到了错误。 Here is my code。错误是——“对象引用未设置为对象的实例。”【参考方案2】:

这样做

DataSet ds = new DataSet();
ds.ReadXml(@"..\..\stock.xml");
DataTable dt = ds.Tables[0].DefaultView.ToTable(true, "productname");
cbProduct.DataSource = dt;
cbProduct.DisplayMember = "productname";

第三行代码创建一个新表,该表将根据 productname 列具有不同的值。更多请阅读this

这个代码是here

【讨论】:

感谢这项工作。但是如果我有更多的列怎么办。如何解决这个问题呢。我试过这个DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);,但它显示的是第二列的 dll 文件。 (第一栏很好)。 我通过为不同的列创建不同的数据表对象来解决这个问题。我认为这不是正确的方法。 好吧,我需要一些建议。我正在使用code something like this。无需创建数据表。这是一个好方法吗? 这个也不错。如果该数据表(具有默认值)不再在任何地方使用,那么您的代码就可以了。 好的,谢谢......如果你有空,请查看我的new question

以上是关于从绑定到数据集的组合框中删除重复项的主要内容,如果未能解决你的问题,请参考以下文章

从 PySpark 中的数据框中删除重复项

从 PySpark 中的数据框中删除重复项

Pyspark - 从数据框中删除重复项,保持最后一次出现

从数据框中删除重复项,基于两列 A,B,在另一列 C 中保持具有最大值的行

在熊猫时间序列数据框中删除重复项

如何从 Javascript 中的数组中删除重复项?