代码之家  ›  专栏  ›  技术社区  ›  jitbit

如何将DataTable.Select()的结果绑定到ListBox控件?

  •  12
  • jitbit  · 技术社区  · 16 年前

    我有以下代码:

    ListBox.DataSource = DataSet.Tables("table_name").Select("some_criteria = match")
    ListBox.DisplayMember = "name"
    

    这个 DataTable.Select() method 返回一个 System.Data.DataRow 物体。

    ListBox.DisplayMember 属性,我看到的只是列表框,其中包含正确数量的项,所有项都显示为 而不是我想要的值,它在 "name"

    ,而不是循环通过它并将每一个添加到 ListBox ?

    (我对循环没有问题,但似乎不是一个优雅的结局!)

    2 回复  |  直到 16 年前
        1
  •  33
  •   Josh    16 年前

    使用 DataView 相反

    ListBox.DataSource = new DataView(DataSet.Tables("table_name"), "some_criteria = match", "name", DataViewRowState.CurrentRows);
    ListBox.DisplayMember = "name"
    
        2
  •  1
  •   Luke Foust    16 年前

    乔希在数据视图上做得很好。如果您需要一个非常大的锤子,您可以从任何数据表中获取行数组。选择(“…”)并合并到不同的数据集中。

    
     DataSet copy = new DataSet();
     copy.Merge(myDataTable.Select("Foo='Bar'"));
     // copy.Tables[0] has a clone