Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I bind the result of DataTable.Select() to a ListBox control?

I have the following code:

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

The DataTable.Select() method returns an array of System.Data.DataRow objects.

No matter what I specify in the ListBox.DisplayMember property, all I see is the ListBox with the correct number of items all showing as System.Data.DataRow instead of the value I want which is in the "name" column!

Is it possible to bind to the resulting array from DataTable.Select(), instead of looping through it and adding each one to the ListBox?

(I've no problem with looping, but doesn't seem an elegant ending!)

like image 281
Andrew Avatar asked Sep 22 '08 13:09

Andrew


1 Answers

Use a DataView instead.

ListBox.DataSource = new DataView(DataSet.Tables("table_name"), "some_criteria = match", "name", DataViewRowState.CurrentRows);
ListBox.DisplayMember = "name"
like image 187
Josh Avatar answered Oct 28 '22 20:10

Josh