Puoi mettere il codice di come la carichi la tabella e di come la popoli? Tutto questo può essere d'aiuto per capire come poterti aiutare...
Ci sono tanti modi per fare la verifica, il primo che mi viene in mente : è che la prima volta che si carica/popola il DataGridView carico in una lista tutti gli indici ID e poi ogni volta che inserisco verifico se in quella lista ci sono gli ID , oppure ogni volta che confermo la cella lui scansiona tutta la colonna e verifica se quell'ID è presente o meno.. ma tutto questo comporta un rallentamento al sistema notevolmente .
Se tu spieghi se il DataGridView è collegato ad un Database? Se si come ? Se no, che operazioni fai dopo che hai inserito i dati? Tutto questo serve per capire quali ragionamenti fai e come ti si può aiutare...
Ti allego alcuni pezzi di codice in C# ma che li puoi facilmente modificare e farli in VB.NET , se hai problemi puoi usare questo Tool Online ottimo : http://www.developerfusion.com/tools/convert/csharp-to-vb , se non ci riesci riscrivimi che ti aiuto..
Il codice è facilmente modificabile.
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.alpacasrl.it