Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Indice DataRow in un DataRowCollection
giovedì 04 dicembre 2003 - 10.02
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sheen77
Profilo
| Newbie
42
messaggi | Data Invio:
gio 4 dic 2003 - 10:02
Ciao a tutti,
il mio problema è il seguente:
Dato un datarow e un dataRowCollection come posso determinare l'indice numerico che il dataRow ha nel dataRowCollection.
Help me.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 4 dic 2003 - 14:56
Ciao,
non mi pare che il DataRow esponga questa informazione.
Spesso ciclando si tiene il conteggio della riga corrente con un contatore oppure Microsoft consigliava di ciclare sulle righe per trovare l'indice.
Non una soluzione pulitissima ma funziona.
ciao
david
sheen77
Profilo
| Newbie
42
messaggi | Data Invio:
mar 9 dic 2003 - 09:53
Per la domanda: come lo recuperi questo datarow?
Mi trovo in una funzione che cattura l'evento OnColumnChanged che gestisce il cambiamento di valore nel dataset, ovvero l'inserimento di un valore nel datagrid che lo ha come sorgente.
Ora al solito ho due parametri formali: (sender as Object, e As DataColumnChangeEventArgs)
Dim dt As DataTable = CType(sender, DataTable) 'casting oggetto sender che so essere un datatable
Dim numeroRighe As Integer = dt.Rows.Count 'numero di righe del datatable
dt.Rows è il dataRowCollection
e.row è il datarow
Da qui vengono il datarow e dataRowCollection.
Vorrei chiedervi una cosa, è questo l'evento giusto per catturare il cambiamento di un valore nel datagrid.
Ovvero io ho l'esigenza di aggiornare una cella nella riga TOTALE quando si inserisce un valore in un'altra riga, come in una fattura per capirci, inserisco il prezzo dei singoli prodotti che vanno ad aumentare quello del totale.
Ho bisogno quindi del nuovo prezzo inserito e di poter accedere alla cella del totale, e fin qui ci siamo. Cosa accade però: supponiamo di avere due soli prodotti: x che costa 100 e y che costa 50. Il totale vale 150. Ora decido di cambiare il prezzo di x da 100 a 75. Il totale deve valere 125. L'operazione che dovrò fare sarà: TOTALE - VecchioValore(x) + NuovoValore(x).
Con l'evento sopra citato non riesco ad avere il vecchio valore, almeno non ci sono riuscito.
Accedendo al datatable per quella riga e colonna risulta già associato 75(il nuovo valore) e 100 sembra ormai perso.
Qualcuno può aiutarmi o darmi qualche dritta sugli eventi sul datatable.
Dimenticavo: posso ciclare all'interno del DataRowCollection ma cosa debbo confrontare per verificare che il DataRow attuale è proprio quello che cerco?
Ciao e grazie.
Vinc
sheen77
Profilo
| Newbie
42
messaggi | Data Invio:
mar 9 dic 2003 - 12:10
Ti ringrazio Marco,
seguo il tuo consiglio e ti faccio sapere.
Vincenzo
sheen77
Profilo
| Newbie
42
messaggi | Data Invio:
gio 11 dic 2003 - 09:21
Ho risolto utilizzando l'evento: ColumnChanging enon più ColumnChanged.
In questo caso nel metodo:
Sub OnColumnChanging(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs)
e.ProposedValue mi da il valore che si sta inserendo mentre
e.Row("nomeColonna") mi da il vecchio valore
Ciao
Vincenzo
Torna su
Stanze Forum
Elenco Threads
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 !