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

Rispondi quotando