Tried using the binding source object, and it reduces 21000 records down to a minute and a half to process. I will have a go at the data reader, as you say, I will not be using it. This is primarily for display purposes only.
Trouble is because I am new to this, I never know what is deemed...