The fastest way I know of is to do this at the very top of your method:
dgvSearch.Rows.Clear();
To avoid flickering, you might want to do this:
dvgSearch.BeginUpdate()
dvgSearch.Rows.Clear();
... your existing code...
dvgSearch.EndUpdate();
EDIT (after the 1-vote) ==================
Why was this 1-voted (or 2-voted for that matter)? I told him how to clear the rows. When you perform a search, clear the existing rowqs, and then re-add them with the new data you got back from your search. Even if he were inexperienced enough to assume he'd get back the same number of rows for each search, this is STILL the fastest way to clear old data unless you're using data binding. More often than not, refactoring is the nature of programming. The sooner everyone admits this to themselves, the better off everyone will be.