Il titolo non c'azzecca molto con l'argomento...
Più che un database, credo che tu abbia una tabella (o più tabelle) con record duplicati.
Prima di tutto non conviene caricare tutta la tabella, ma trovare solo i record duplicati usando la query SQL seguente:
codice:
SELECT nome, COUNT(*)
FROM tabella
GROUP BY nome
HAVING COUNT(*) > 1
li carichi in un DataGridView tramite un OleDataReader (inutile usare un Dataset).
(Se non sai come eseguire queste operazioni, guardati il mio progetto in firma su ADO.NET)
A quel punto potrai eliminare i record duplicati con un ForEach in base alla tua necessità, sempre usando una query di comando:
codice:
DELETE * FROM tabella WHERE <tua_condizione>
dove <tua_condizione> è la condizione che inquivocabilmente indica la singola riga da eliminare.
Se la tabella ha una chiave primaria (come dovrebbe essere), usa quella.
Se non c'è allora devi creare un nuovo campo ed impostarlo come chiave primaria perchè altrimenti è pacifico che se tutti i campi dei record duplicati sono esattamente uguali allora la DELETE finirà per cancellare tutti i record uguali, anche quello che vuoi mantenere!