Really REALLY big thanks! This:
First up, I think you'll find that, by default, calling Fill on a DataAdapter will not clear the existing data from the DataTable.
Made me realise all I needed to do was call Clear() on my dataTable before filtering!

Again, big thanks! Thread resolved.