I DataSource Control di ASP.NET 2.0

di Cristian Civera, in ASP.NET 2.0, ADO.NET,

Quasi tutte le applicazione web oggi giorno dispongono di pagine che accedono a dati. Con ASP.NET 1.x il caricamento da una fonte e la relativa presentazione è stata molto facilitata. Scopo della prossima versione di ASP.NET è renderci ancora più produttivi, perciò il team di Microsoft ha pensato di rendere più automatiche quelle operazioni comuni note con il nome di CRUD (Create, Read, Update, Delete).
Per far ciò sono stati creati dei controlli inseribili nelle pagine, visibili quindi in fase di design in Microsoft Visual Studio, ma che non producono nessun codice HTML.
Inoltre i controlli che ora già usiamo come DropDownList, ListBox, GridView (un'evoluzione di DataGrid) ecc, sono ora capaci di usare questi controlli attraverso la proprietà DataSourceID indicante appunto l'ID della sorgente.
Per capire meglio vediamo un esempio:

<form runat="server">
    <asp:SqlDataSource ID="Ordini"
    SelectCommand="SELECT * FROM Orders"
    ConnectionString="server=localhost;..."
    runat="server">
  </asp:SqlDataSource>
   <asp:GridView ID="OrdiniGridView"
     DataSourceId="Ordini"
    AutoGenerateColumns="True"
    runat="server">
  </asp:GridView>
</form>

Nell'esempio abbiamo definito un SqlDataSource che è in grado di accedere a SqlServer. Esistono altri controlli di accesso ai dati che implementano tutti IDataSource:
- AccessDataSource: per accedere ad Access;
- DataSetDataSource: per accedere ad un DataSet già caricato di informazioni;
- ObjectDataSource: per accedere ad una qualsiasi classe che ritorni dei dati. Utile se si hanno strati di Business;
- XmlDataSource: per accedere a sorgenti XML;
- SiteMapDataSource: per accedere al file per la mappa del sito (ancora in xml).
Abbiamo quindi associato un ID come per ogni comune controllo e impostato le proprietà specifiche di questo tipo di sorgente:
- SelectCommand: per indicare query sql o stored procedure da richiamare per operazioni di select
- ConnectionString: per indicare la stringa di connessione al server sql.
Il GridView, conoscendo l'id della sorgente sfrutterà la SelectCommand per reperire i dati. Qual è il vantaggio di questo approccio?
Senza scrivere nessuna riga di codice abbiamo creato una pagina che carica dati da una sorgente SQL Server. Il GridView potrà ricaricare i dati ogni qual volta ne ha bisogno, per esempio quando si cambia pagina o si aggiunge o si cancella un record senza dover richiamare da codice il metodo DataBind presente dalla versione 1.x.
Inoltre questi controlli non si limitano alle operazioni di Select, ma anche a quelle di Insert, Update, Delete, Sort e Filter.
Se una di queste operazioni necessità di parametri da passare alla query, alla stored procedure o al metodo di una classe, possiamo specificarli sempre a livello di codice della pagina:

<asp:SqlDataSource
  id="SqlDataSource1"
  runat="server"
  ConnectionString="..."
  SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
  UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID">
  <UpdateParameters>
    <asp:ControlParameter Name="Address" ControlId="addressTextBox" PropertyName="Text"/>
    <asp:ControlParameter Name="EmployeeID" ControlId="employeDDL" PropertyName="SelectedValue"/>
  </UpdateParameters>
</asp:SqlDataSource>

Si intuisce da subito cosa fa questo esempio e le potenzialità di questo approccio. Tramite ControlParameter indichiamo il nome del parametro e l'id del controllo dalla quale prelevare il valore. Esistono altri tipi di Parameter:
- CookieParameter: per prelevare un valore dai Cookie;
- FormParameter: per prelevare un valore dalla Form;
- ProfileParameter: per prelevare un valore dal Profile (informazioni sull'utente corrente)
- QueryStringParameter: per prelevare un valore dalla query string;
- SessionParameter: per prelevare un valore dalla sessione

Tutto questo è stato fatto per aumentare la produttività riducendo le linee di codice che spesso si ripetono. Si possono scrivere sia DataSource che Parameter custom, quindi non ci sono limiti per utilizzare tutte le nuove funzionalità fornite dai nuovi controlli poiché le interfacce di accesso sono le medesime e conosciute a tutti.

Per approfondimenti su ASP.NET 2.0 si veda
http://aspdotnet2.aspitalia.com/

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi