Risolto, per chi ne avesse bisogno, il problema consiste nel fatto che, stupidamente, esegivo DATATABLE.AcceptChanges prima di effettuare l'aggiornamento del database, ACCEPTCHANGES modifica lo stato di tutte le righe del datatable da Inserito/Modificato/Cancellato in Invariato e quindi invalida qualsiasi aggiornamento del DB.