如何将DataTable.Select()的结果绑定到ListBox控件?
时间:2020-03-06 14:32:23 来源:igfitidea点击:
我有以下代码:
ListBox.DataSource = DataSet.Tables("table_name").Select("some_criteria = match") ListBox.DisplayMember = "name"
DataTable.Select()方法返回System.Data.DataRow对象的数组。
无论我在ListBox.DisplayMember属性中指定什么,我所看到的都是具有正确数量的项目的ListBox,这些项目都显示为System.Data.DataRow,而不是我想要的名称中的值。 `专栏!
是否可以从DataTable.Select()绑定到结果数组,而不是循环遍历并将每个数组添加到ListBox中?
(循环没问题,但结局似乎不太好!)
解决方案
请改用DataView。
ListBox.DataSource = new DataView(DataSet.Tables("table_name"), "some_criteria = match", "name", DataViewRowState.CurrentRows); ListBox.DisplayMember = "name"
Josh对DataView拥有正确的看法。如果我们需要一个很大的锤子,则可以从任何DataTable.Select(" ...")中获取行的数组,然后合并到另一个DataSet中。
DataSet copy = new DataSet(); copy.Merge(myDataTable.Select("Foo='Bar'")); // copy.Tables[0] has a clone
对于我们尝试做的事情,这种方法很可能是矫kill过正,但是在某些情况下,我们可能需要从行数组中获取数据表,这很有用。