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