Ovo je normalno ponašanje zato što DataSet nije jedna tabela već upit koji vraća neku vrstu "pogleda" na podatke (joined query).
Da bi ovo rešio, recimo možeš da pre brisanja aktivnog zapisa upamtiš koji ti je zapis ispred (ili iza) tog koji brišeš (zapamtiš njegov ID, vrednost ključa) i onda nakon brisanja uradiš Find sa tim ključem. Ovo rešenje takođe može da bude i uzrok za pad performansi aplikacije kod čitanja podataka iz baze, jer moraš da uradiš više operacija nad istim DataSet-om (pređeš na prethodni slog, pročitaš ID, pređeš na aktuelni slog, obrišeš ga, osvežiš upit, uradiš Find sa zapamćenim ID-jem), pa zato moraš da odlučiš dali ti ovakva funkcionalnost zaista treba.
Postoje takođe komponente (DevExpress ExpressQuantumGrid, recimo) koje ti ovo rade automatski, ali opet moraš neke stvari da malo isplaniraš. Obavezno napravi probu sa više varijanti pa vidi šta ti najviše odgovara.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams