In realtà, la natura del problema originale mi è difficile diagnosticarla perché si parla di rimozione di record, ma nel codice di esempio è un nuovo record a essere inserito.

Inoltre, sembra quasi che ci sia un tentativo di rimuovere una tabella, analizzando il messaggio di errore, piuttosto che un singolo record.

Si parla di un "clear preventivo", ma forse c'è una sequenza di operazioni che riconduce il DataSet a fare ciò che non dovrebbe.

In teoria, tutte le operazioni si dovrebbero basare sul DataSet e non dovrebbe esserci la necessità di "pulire" nulla.

Magari la costruzione di un prototipo per isolare le operazioni e verificare meglio il problema sarebbe utile.