Questa documentazione è stata archiviata e non viene gestita.

Origini dati supportate da Windows Form

Tradizionalmente, l'associazione dati è utilizzata all'interno delle applicazioni per utilizzare i dati archiviati in un database. Con l'associazione dati di Windows Form è possibile invece accedere ai dati contenuti sia in database che in altre strutture, quali matrici e insiemi, a condizione che vengano soddisfatti determinati requisiti minimi.

Strutture con cui stabilire un'associazione

In Windows Form è possibile stabilire associazioni con un'ampia gamma di strutture, dagli oggetti semplici (associazione semplice) agli elenchi complessi, come ad esempio le tabelle dati ADO.NET (associazione complessa). Nel caso dell'associazione semplice, Windows Form supporta l'associazione alle proprietà pubbliche nell'oggetto semplice. In genere, per l'associazione basata su elenchi di Windows Form è necessario che l'oggetto supporti l'interfaccia IList o l'interfaccia IListSource. Inoltre, se si stabilisce un'associazione mediante un componente BindingSource è possibile stabilire un'associazione a un oggetto che supporta l'interfaccia IEnumerable. Per ulteriori informazioni sulle interfacce correlate all'associazione dati, vedere Interfacce correlate all'associazione dati.

Nell'elenco riportato di seguito sono descritte le strutture con cui è possibile stabilire un'associazione in Windows Form.

BindingSource

BindingSource è l'origine dati Windows Form più comune e agisce come proxy tra un'origine dati e i controlli Windows Form. Il criterio di utilizzo generale di BindingSource consiste nell'associare i controlli alla classe BindingSource e nell'associare la classe BindingSource all'origine dati, ad esempio a una tabella dati ADO.NET o a un oggetto business. La classe BindingSource fornisce servizi che attivano e migliorano il livello di supporto dell'associazione dati. I controlli Windows Form basati su elenchi, come DataGridView e ComboBox, ad esempio, non supportano in maniera diretta l'associazione a origini dati IEnumerable, tuttavia è possibile dare vita a questo scenario creando un'associazione mediante una classe BindingSource. In questo caso, la classe BindingSource convertirà l'origine dati in un'interfaccia IList.

Oggetti semplici

Windows Form supporta l'associazione dati delle proprietà dei controlli con le proprietà pubbliche nell'istanza di un oggetto tramite il tipo Binding. Windows Form inoltre supporta l'associazione di controlli basati su elenchi, come ad esempio ListControl, con un'istanza di un oggetto quando viene utilizzata la classe BindingSource.

Matrice o insieme

Per agire come origine dati, un elenco deve implementare l'interfaccia IList. Un esempio è costituito da una matrice che rappresenta un'istanza della classe Array. Per ulteriori informazioni sulle matrici, vedere Procedura: creare una matrice di oggetti. Per ulteriori informazioni sugli insiemi, vedere Relazioni tra oggetti.

In generale, è necessario utilizzare la classe BindingList quando si creano elenchi di oggetti per l'associazione dati. BindingList è una versione generica dell'interfaccia IBindingList. L'interfaccia IBindingList estende l'interfaccia IList aggiungendo proprietà, metodi ed eventi necessari per l'associazione dati bidirezionale.

IEnumerable

I controlli Windows Form possono essere associati a origini dati che supportano solo l'interfaccia IEnumerable se l'associazione avviene tramite un componente BindingSource.

Oggetti dati ADO.NET

In ADO.NET sono disponibili diverse strutture di dati con cui è possibile stabilire l'associazione. Ciascuna presenta caratteristiche di complessità differente.

  • DataColumn. Una classe DataColumn rappresenta il blocco di generazione fondamentale di una classe DataTable, poiché una tabella è costituita da un certo numero di colonne. Ogni classe DataColumn dispone di una proprietà DataType che determina il tipo di dati contenuti nelle colonne, ad esempio i componenti di un'automobile in una tabella in cui vengono descritte auto. È possibile eseguire un'associazione semplice di un controllo, ad esempio la proprietà Text di un controllo TextBox, a una colonna all'interno di una tabella dati.

  • DataTable. Una classe DataTable è la rappresentazione di una tabella con righe e colonne in ADO.NET. Una tabella dati contiene due insiemi: DataColumn, che rappresenta le colonne di dati di una determinata tabella e con cui viene determinato il tipo di dati che possono essere inseriti in tale tabella, e DataRow, che rappresenta le righe di dati di una tabella. È possibile eseguire l'associazione complessa di un controllo alle informazioni contenute in una tabella dati, ad esempio associando il controllo DataGridView a una tabella dati. Quando si esegue l'associazione a una classe DataTable, si effettua in realtà un'associazione alla visualizzazione predefinita della tabella.

  • DataView. Una classe DataView rappresenta una visualizzazione personalizzata di un'unica tabella dati che può essere ordinata o filtrata. Una visualizzazione dati è lo snapshot dei dati utilizzato dai controlli con associazione complessa. È possibile eseguire un'associazione semplice o complessa ai dati all'interno di una visualizzazione dati, ma è opportuno tenere presente che in questo modo viene eseguita un'associazione a un'immagine fissa dei dati e non a un'origine dati che viene aggiornata.

  • DataSet. Una classe DataSet rappresenta un insieme di tabelle, relazioni e vincoli dei dati di un database. È possibile eseguire un'associazione semplice o complessa ai dati all'interno di un oggetto DataSet, ma è necessario tenere presente che in questo modo viene eseguita un'associazione alla classe DataViewManager predefinita di DataSet, come illustrato al punto successivo.

  • DataViewManager. Una classe DataViewManager rappresenta una visualizzazione personalizzata dell'intero DataSet, analoga alla classe DataView ma contenente relazioni. Con un insieme DataViewSettings è possibile impostare filtri predefiniti e ordinare opzioni per qualsiasi visualizzazione predisposta da DataViewManager per una determinata tabella.

Vedere anche

Mostra: