From your description, is would appear that 99% of the time it takes to come up with the final result is being taken up by the SQL queries themselves. The code to put the final table with the results is nearly nothing. If these queries are static, meaning you always use the same set of queries the same way, then you might want to look into have the SQL Server run a stored procedure that runs all of your queries for you and returns a small table with the results you want. Then, you would only have to write code to handle the returned table of results, bind your datagrid to it, and not worry about dataset.tables("whatever").row(0).Item(0). RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome