.net - valore - vba combobox1 listindex




Come si associa il risultato di DataTable.Select() a un controllo ListBox? (2)

Ho il codice seguente:

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

Il metodo DataTable.Select() restituisce una matrice di oggetti System.Data.DataRow .

Indipendentemente da ciò che specifichi nella proprietà ListBox.DisplayMember , tutto quello che vedo è il ListBox con il numero corretto di elementi tutti visualizzati come System.Data.DataRow invece del valore che voglio che è nella colonna "name" !

È possibile associare l'array risultante da DataTable.Select() , anziché eseguirne il ciclo e aggiungerne uno al ListBox ?

(Non ho problemi con il loop, ma non sembra un finale elegante!)


Josh ha ragione con DataView. Se hai bisogno di un martello molto grande, puoi prendere l'array di righe da qualsiasi DataTable.Select ("...") e fare unire in un DataSet differente.


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

Questo approccio per ciò che si sta tentando di fare è probabilmente eccessivo, ma ci sono casi in cui potrebbe essere necessario ottenere un datatable da una serie di righe in cui è utile.


Utilizzare invece un DataView .

ListBox.DataSource = new DataView(DataSet.Tables("table_name"), "some_criteria = match", "name", DataViewRowState.CurrentRows);
ListBox.DisplayMember = "name"






datarow