I agree with Colin, write your SQL so it does the filtering depending on a parameter passed into the stored procedure. There is no reason for you to be passing tens of thousands of records to a client that will only display 10-20 records on the screen at any one time. You might also want to include paging support in the SQL and the Datagrid. RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome