I'm working through Murach's ado.net 4 database programming book and enjoying it. As I go through I'm trying to create a dummy programme for an industry I'm familiar with: fireplaces

The book explains about 3 tier programming instead of databinding.

Following the advice, I have a table in my SQL database named tblFireplaces. In my project I have a class that represents the table called 'Fireplace' (only 3 fields so far to keep it simple) and a class to contain all database manipulation code (Add, Edit, Delete, Update, etc) called FireplaceDB

To retrieve the rows from tblFireplaces I have a Function in FireplacesDB that returns a List(of Fireplaces) and that list is then set as the datatsource for a BindingSource of a DataGridView.

All well and good so far, however using this method causes issues with filtering & sorting in that you can't!

I could create Functions to select rows from the database using SQL but that would require a lot of unnecessary database lookups.

I've searched around and can't see any easy way to convert the list and it certainly can't be filtered as far as I know.

My idea was to get the information from my List and convert it to a DataTable and have that as the source but even that is complicated it seems.

If I want to have sorting it seems I'd have to use datasets instead. Is this the only way?

Hope I've been clear enough. Can provide the code if needed but I'm sure you see what I'm getting at