【问题标题】: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)。

请帮忙。
提前致谢。

【问题讨论】:

    标签: c# c#-4.0 combobox dataset datasource


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 2011-10-10
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多