Charles and Edhy..thanks for your very informative replies.
(By the way, what is SSIS ?)
I have done a bit of experimenting and got the update,( inclusive of descriptions) down to about 10 mins for 200,000 records.
I had a look at Arrays, ArrayList but neither seemd to fit the bill. Then I came across a thing called Dictionary, which allows you to store in a type of array, Key and Value pairs, and then to do a lookup on these with one command. This seems to have worked extremely well in the limited testing I have done so far.
So what I have done is as follows:
1. Initailly, store all my Keys and Descriptions into Dictionaries . This is an initial hit but only takes seconds as I am just storing 2 fields for each lookup
2. When populating my main Table, in order to get the descriptions, I just do a lookup on the in Memory dictionary. This means I do not have any overhead of going to disk out and doing any selects etc...all thats needed is a lookup which seems to be very fast