Buongiono a tutti!
Ho una form in cui ho inserito un bindingNavigator, delle textbox e un dgv
ho definito un bindingsource che punta al dataset da cui carico le textbox,
la bindingNavigator l'ho agganciata al bindingsource di cui sopra,
la dgv si carica, nell'evento CurrentChanged del bindingnavigator, prendendo i dati da un datatable.
ho aggiunto una colonna calcolata al datatable, usando la proprietà expressions
la colonna calcolata viene effettivamente aggiunta al datatable e ne vedo l'intestazione nel dgv, ma non c'è nessun valore!!!!
per caricare il dgv procedo in questo modo:
creo un dataadapter, gi passo una stringa sql e la stringa di connessione
faccio un fill della datatable (12 colonne e tutte le mie righe sono caricate)
creo una nuova colonna
definisco il calcolo che voglio fare (e il calcolo lo fa, lo vedo nel debag)
aggiungo la colonna al datatable (che ora ha 13 colonne e tutte le mie righe)
definisco come bs il datatable
istanzio una dgv e metto come datasource di quest'ultima il bs di cui sopra.
dove sbaglio??
posto il codice che mi carica il dgv.
Grazie.
codice:
Dim DaRicette_dett As New OleDb.OleDbDataAdapter(sqlDgv, Start.GetStrDataBase)
Dim commandBuilder As New OleDb.OleDbCommandBuilder(DaRicette_dett)
' popolo una nuova tabella
Dim DTricette_dett As New DataTable()
DaRicette_dett.Fill(DTricette_dett)
'definisco i campi che mi servono per la colonna calcolata
Dim quantita As Double
Dim nPeso As Double
Dim energia As Integer
Dim densita As Double
Dim conversione As Integer
Dim edibile As Integer
quantita = DTricette_dett.Rows(0)("Qta")
nPeso = DTricette_dett.Rows(0)("n_peso")
energia = DTricette_dett.Rows(0)("energia kcal")
densita = DTricette_dett.Rows(0)("densita")
conversione = DTricette_dett.Rows(0)("conversione")
edibile = DTricette_dett.Rows(0)("edibile")
Dim convUsare As Double
For Each Dr As DataRow In DTricette_dett.Rows
If conversione > 0 Then
convUsare = conversione
Else
convUsare = nPeso
End If
Next
Dim TKcalQta As New DataColumn()
TKcalQta.ColumnName = "KcalQta"
TKcalQta.DataType = GetType(Double)
TKcalQta.Expression = "(quantita * convUsare * energia * densita * edibile)/10000"
DTricette_dett.Columns.Add("TKcalQta")
'definisco il datasource del dgv e quindi lo carico
bsRicette_dett.DataSource = DTricette_dett
DgVRicette_dett.DataSource = bsRicette_dett