14 messaggi dal 26 aprile 2008
Allora sto cercando di capire come funziona ado.net 2.0 e seguendo alcuni walkthrough sul sito di microsoft ho diciamo scritto un piccolo programma che mi passi dei dati tra due form..

quello che succede nel programma p che nel form1 ho un datagridview che mi visualizza una vista di più tabelle correlate....e facendo un doppio click su una riga del gridview mi si apre la form2 con i dettagli del record selezionato....

Ora per alcuni campi ho sfruttato il mecaniscmo del databindig per altri tipo ad esempio la visualizzazione della giusta tipologia utente su una combobox partendo dall'idutente ho usato il seguente codice:

this.tblUtenteTableAdapter.Fill(this.toolseDataSet.tblUtente);

comboBox1.SelectedValue = ((toolseDataSet.tblToolseRow)((DataRowView)
tblToolseBindingSource.Current).Row).idUtente;

e funziona!..solo che ci sono arrivato copiazzando un pò....e non lo ho capito molto bene
nel progetto ho:

Ho un dataset toolseDataSet
che contiene 2 tabelle tra cui

tblToolse
tblUtente

più una vista qtasklist che è visualizzata sul datagridview

.....ad esempio questa riga cosa fa??

((toolseDataSet.tblToolseRow)((DataRowView)
tblToolseBindingSource.Current).Row).idUtente;

...e questa singola parte di codice esattamente cosa vuol dire??

((DataRowView)tblToolseBindingSource.Current).Row).idUtente;


CIAO e GRAZIE
9 messaggi dal 06 maggio 2008
((toolseDataSet.tblToolseRow)((DataRowView)
tblToolseBindingSource.Current).Row).idUtente;

devi spacchettarla :

(DataRowView)tblToolseBindingSource.Current

Questa è una funzione di cast e dice al compilatore che tblToolseBindingSource.Current è di tipo DataRowView.

A sua volta la classe DataRowView ha come proprieta :

Current

che contiene il record selezionato per reord si intende l'intera riga della tabella. Quindi ne consegue che all'interno dell'intera riga sono presenti i campi e di conseguenza il campo idUtente.
Ne conseguie che per lo stesso discorsi di prima (il casting) viene fuori questa dicitura :

((toolseDataSet.tblToolseRow)((DataRowView)
tblToolseBindingSource.Current).Row)

Che si collega alla riga della tabella continuando col punto puoi modificare o richiedere informazioni sul singolo campo come idUtente.

CAPITO!!!

-----------------------------------------------
per finire hai questo comando :

comboBox1.SelectedValue = ((toolseDataSet.tblToolseRow)((DataRowView)
tblToolseBindingSource.Current).Row).idUtente;

che dice alla combobox di impostare il valore da visualizzare uguale al contenuto attuale del campo idUtente presente nella tabella.

Molto probabilmente la combo ti visualizza la descrizione, perchè hai associato un dataset alla griglia che dice per ogni idUtente quale vlaore visualizzare.

-----------------------------------------------

Buon Lavoro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.