Problema con DataGridView

domenica 03 settembre 2006 - 22.46

franksnet Profilo | Newbie

Salve, ho un problema con la gestione di un DataGridView (VS 2005). Devo fare in modo
che in caso venga editata la colonna Qta (Quantità) venga aggiornato di conseguenza l'importo
complessivo secondo la banale moltiplicazione Qta x Costo.
Perciò ho messo il seguente codice nell'evento CellEndEdit del DataGridView

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In linea di massima funziona, ma c'è il problema che a volte modificando la quantità non viene comunque aggiornata la colonna dell'importo, che rimane quella prima dell'edit della colonna quantità, e peraltro anche la quantità rimane quella prima dell'editing ... qualcuno sa darmi una mano x capire dove sbaglio?

totti240282 Profilo | Guru

Non ti conviene usare una colonna calcolata ???
C'è solo un capitano !!!!!!

franksnet Profilo | Newbie

Eh ... avevo già avuto quell'idea ... solo che non ho afferrato come si metton in pratica concretamente le Colonne calcolate.
Ad esempio, in questo caso io nel database ho le colonne qta, costo e importo ... nella proprietà expression della colonna importo scrivo

Qta*Costo

Ma appena attivo il datagrid in questione ottengo questo errore:

The column mapping from SourceColumn 'Importo' failed because the DataColumn 'Importo' is a computed column.

Dove sbaglio?!

franksnet Profilo | Newbie

Frugando un pochino suppongo il problema stia nel fatto che la colonna che gli chiedo di calcolare esista nel database ... visto che se creo nel datatable una colonna ad hoc e gli do nella proprietà expression

Qta*Costo

... la calcola perfettamente e rapidamente. Il problema è ke non mi è sufficiente che quella colonna venga calcolata e mostrata a video, ho necessità di memorizzarla nel database ... come faccio?!!

totti240282 Profilo | Guru

Guarda qui


http://www.dotnethell.it/articles/ADOChildTables.aspx
C'è solo un capitano !!!!!!

franksnet Profilo | Newbie

Si ho letto quell'articolo ieri sera e spiega ottimamente come gestire i campi calcolati ma non mi risolve il problema ... visto ke trattandosi di dataset piuttosto corposi (e quindi per questioni di performance, oltre ke per semplicità nell'estrapolare statistiche) ho necessità di salvare comunque il dato direttamente nel database ...

Ho pensato anke a mettere un trigger nella tabella del database ... ma mi pare una soluzione abbastanza rozza ... cioè alla fine il risultato sarebbe lo stesso ma non mi sembra la strada più adatta ...

totti240282 Profilo | Guru

Bè usare i trigger non mi pare una soluzione rozza anzi...
C'è solo un capitano !!!!!!

franksnet Profilo | Newbie

Dici ? Beh quella soluzione mi riesce abbastanza facile ... è ke mi sembra poco flessibile come soluzione ... se per caso aggiungo colonne o inserisco dei parametri devo cambiare il trigger, non mi sembra il massimo ma magari sbaglio io nella mia idea!

Poi mi chiedevo a livello di efficienza, leggasi in termini di performance, qual'è la soluzione migliore ...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5