Pillole di C#
Accesso ai Database con il DataAdapter
La classe DataAdapter stabilisce una connessione tra un Dataset ed un data source.
Ci sono i metodi Fill e Update.
Fill riempie un Dataset con i valori presi da un database e Update scrive i dati
sul database prendendoli dal dataset.
In un DataAdapter, la prima cosa da fare è impostare i comandi SQL per specificare
quali dati leggere e quali dati scrivere.
Per questi scopi, il DataAdapter fornisce le proprietà:
-
SelectCommand
-
DeleteCommand
-
UpdateCommand
-
InsertCommand
In caso di connessione ad un database Microsoft SQL Server, è possibile incrementare
le prestazioni utilizzando SqlDataAdapter, SqlCommand e SqlConnection. Se si ha
a che fare con origini di dati supportate da OLE DB, si può usare DataAdapter, OleDbCommand
e OleDbConnection.
Quando viene creata un'istanza di DataAdapter, le proprietà di lettura/scrittura
vengono impostate sui valori iniziali.
Per fare questo, occorre considerare il costruttore dell'oggetto DataAdapter.
La classe SqlDataAdapter, specifica per database SQL Server, non può essere ereditata
e contiene un insieme di comandi per i dati e una connessione a un database, utilizzati
per inserire i dati nell'oggetto DataSet e per aggiornare, poi, il database SQL
Server.
Vediamo come caricare i dati da un database ad un DataSet.
Il risultato di una SELECT è una tabella e un DataSet contiene un oggetto DataTable.
Vogliamo caricare il contenuto di un database in un DataTable.
Per prima cosa creiamo un DataAdapter che apre una connessione al database impostando
il comando SelectCommand e poi chiamiamo il metodo Fill.
Supponiamo di avere una database PUBS.
Per realizzare una query dobbiamo per prima cosa stabilire una connessione al database.
Supponendo di aver già impostato una stringa di connessione nel file di configurazione,
e di averla chiamata PUBSConnectionString, la nostra connessione sarà:
SqlConnection conn =
new SqlConnection(ConfigurationManager.ConnectionStrings["PUBSConnectionString"].ConnectionString);
Dobbiamo costruire un oggetto SqlDataAdapter che contenga la query.
Il costruttore SqlDataAdapter vuole la query e la connessione: