That really depends on a lot of things. The fastest way to get data into a
control is going to be the DataReader. When you say Filtered, that's the
only caveat. If the user is going to make multiple selections and you are
going to filter otehr controls based on a IndexChanged type event, then a
DataReader may not be the best way. You can bind a Datatable to a control,
and you can use a DataView based on that DataTable and manipulate it's
RowFilter...Or if it's a Key Field you can use the Select method of the
DataTable. If you use the disconnected/DataTable method, you'll have
slightly slower speed up front, but will gain a lot in that you won't have
to continually open/close connections and go back to the Database. If you
only have a few records, and it's on the desktop, this could be negligible,
so Best depends on a lot of things. Also, you could use a Reader to
populate your list, fill a collection/collection based object and bind your
controls to that. You have a lot of flexibility.. and to be honest, it's
kind of hard to say there is a 'Best' way.
However, if you have any questions, I'll be glad to help where I can.
Hope this was useful.
Cheers,
Bill