il datakey lo prendo, però non mi va di fare la query al db per recuperare un campo.

codice:
Sub MyDataGrid_Update(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)

        'devo aggiornare il monto
        Dim objDataBase As New Fernando.database()

        objDataBase.ConnectionString = ConfigurationSettings.AppSettings("conn")

        'Dim app As String = E.Item.Cells(4).Controls(0).Controls.GetType.ToString

        If CType(E.Item.Cells(5).Controls(0), TextBox).Text <> CType(E.Item.Cells(4).Controls(0), TextBox).Text Then 
            'se la proroga è diverso dal monto devo ottenere un'altro mese
            Dim risultato_query As Boolean

            risultato_query = objDataBase.ExecuteNonQuery("UPDATE contratto SET proroga=proroga + " & CType(E.Item.Cells(5).Controls(0), TextBox).Text & ", data_chiusura='" & objDataBase.Converti_Data_Per_MySql(DateAdd("m", 1, FormatDateTime(Now(), 2))) & "' WHERE num_contratto=" & MyDataGrid.DataKeys(E.Item.ItemIndex))

            If risultato_query Then
                MyDataGrid.EditItemIndex = -1
                binddata()
                'apro la pagina di stampa
                Response.Redirect("stampa.aspx?type=proroga&num=" & MyDataGrid.DataKeys(E.Item.ItemIndex), True)
            Else
                Me.RegisterStartupScript("test", "<script language='javascript'>alert ('Errore nella query');</script>")
            End If
    end if
vedi la IF, il secondo valore lo catturo perchè anche questo in modalità di modifica mi diventa un textbox, io però non vorrei farlo diventare un texbox ma lo vorrei lasciare come è cioè un bel boundcolumn