Salve a tutti sto creando un gestionale.

Quando avvio il programma carico i dati delle tabelle in un dataset che poi visualizzo in un datagridview. Fin qui tutto ok. Il problema sorge quando un utente modifica una riga direttamente dalla griglia. Mi spiego meglio con un po' di codice:

Una volta finito l'editing della riga, l'utente con la pressione di invio dovrebbe scrivere i cambiamenti sul DB:
Codice PHP:
'Questo è il codice che ho nell'evento keydown della griglia
Private Sub MyDataGrid_KeyDown(ByVal sender As ObjectByVal e As System.Windows.Forms.KeyEventArgsHandles Me.KeyDown 
    
If e.KeyCode Keys.Return      Then Db.updateFromDataSet() End If
End Sub

'Questo è il metodo UpdateFromDataset
        Try

            If dataset.HasChanges() Then
                ' 
command.Transaction connOleDb.BeginTransaction(ISOLATION_LEVEL)


                
command_Builder.DataAdapter dataAdapter
                
If command_Builder.ReturnGeneratedIdentifiers True Then
                    command
.UpdatedRowSource UpdateRowSource.None
                End 
If
                
dataAdapter.Update(dataset)

                
'Accetto cambiamenti anche sul dataset
                dataset.AcceptChanges()

                '
Inserisco il record nella tabella dei record modificati
                InserisciRecordModificato
(Griglia.SelectedRows.Item(0).Cells(_CampoId).Value"articoli""update"_Id_Client)

                
writeLog("Operazione eseguita con successo (Update From Dataset)")
                
' command.Transaction.Commit()

            End If
        Catch ex As Exception
            MsgBox("Update From dataset: " & ex.Message, MsgBoxStyle.Exclamation)
            '
command.Transaction.Commit()

        
End Try 
L'oggetto Db contiene tutte le informazioni per interagire con il DataBase

Quello che succede è che alla prima pressione del tasto "Invio" il dataset è come se non vedesse i cambiamenti. o meglio " If dataset.HasChanges() Then" ritorna false, se lo premo 2 o 3 volte di seguito invece poi aggiorna la riga.

E' come se alla pressione del tasto invio il dataset non avesse ancora visto il cambiamenti.

Dove sbaglio? E' un po' che cerco di risolvere questo problema non ci sono proprio riuscito.

Grazie a tutti in anticipo, se servono altre info chiedete.

Ciao