ciao,
fatti una label
e quando fai l'update fai lblmessage.Text= cInt(e.item.Cell(0).Text)

E vedi se ad ogni update della riga ti prende il giusto id.
Poi se tutto va bene assegna l'executenonquery ad un intero
dim risp as int32=obj.Executenonquery(sql) e prova a stamparlo
lblmessage.text= risp.tostring.
Se ti da 0 allora vuol dire che c'e' qualcosa di sbagliato nella query di update e allora vediamo cos'e' che non va, altrimenti se effettivamente te lo aggiorna
1) Vedi proprio sul db se il valore e' cambiato.
2) se il valore e' cambiato sbagli a bindare.