Duke:
There's no part of ADO.NET that lends itself well to 110,000 row queries.
That's a ton of data to pull over, and it's taking up a ton of resources to
hold. I'd recommend using much much smaller sets and heading back to the db
to get the additional data. For instance, if you pulled 10k at a time and
added them to a table, , you could throw out each of the 10k queries to a
different thread, wait for the execution to finish, fire a 'Done' event and
then go for the next 10 k. I don't think it'll ever be very quick, but
additionally, make sure you have a key on that table.
I know this probably doesn't answer your question specifically, but I hoped
this helped.
Cheers,
Bill