sto combattendo col DataGridView, e sto perdendo
Leggo i dati da una tabella in un DataTable. Vi è una colonna numerica e vorrei vedere al suo fianco, il progressivo.
L'sql l'ho fatta così:
codice:
Private sql As String = "select conto.*, 0.0 as progressivo from conto "
Il caricamento dati l'ho fatto con questo codice:
codice:
Using con As New o.OdbcConnection(stringaConnessione)
con.Open()
dt = msodbc.GetDataTable(con, sql)
Dim progressivo As Decimal = 0
For Each r As DataRow In dt.Rows
progressivo += CDec(NullToZero(r("valore_operazione")))
r("progressivo") = progressivo
r.AcceptChanges()
Next
End Using
Questo il problema. Se ordino la griglia asc o disc per qualsiasi campo, debbo riscrivermi il progressivo.
In che evento lo faccio?
Ho provato a farlo nell'evento Sorded, come da codice, ma non va. Mi dareste una mano?
codice:
Private Sub DataGridView1_Sorted(sender As Object, e As System.EventArgs) Handles DataGridView1.Sorted
Dim progressivo As Decimal = 0
For Each r As DataRow In dt.Rows
Dim status_old As DataRowState = r.RowState
progressivo += CDec(NullToZero(r("valore_operazione")))
r("progressivo") = progressivo
If status_old = DataRowState.Unchanged Then
r.AcceptChanges()
End If
Next
End Sub