SqlDataSource



Da sviluppatore .NET, vi vorrei parlare e di una fantastica tecnologia di ASP.NET basata sui datasource ed in particolar modo sui SqlDataSource. Questa tecnologia semplifica di molto l’accesso ai dati lascianoci la possibilità di concentrarci sul core delle nostre applicazioni tralasciando i dettagli legati alle implemenzationi delle sezioni di data-entry. 

Innanzi tutto un SqlDataSource non è un controllo ASP.NET, ma è un componente ASP.NET. Questo vuol dire che non fa nessuna attività di rendering, ma è di supporto ai controlli (GridView, DetailView, ecc) che invece “disegnano” qualche cosa.
Di fatto questo componente fa da ponte tra ciò che deve essere renderizzato a video ed i dati prelevati dalla fonte. I componenti sono peculiari per la tipologia di fonte dati, quindi il componente SqlDataSource è specifico per i dati che giaciono su SQLServer, ovviamente ce ne sono altri specifici per altre fonte dati, come ovviamente è possibile svilupparsene dei propri.

A questo punto, dopo questa breve introduzione, vediamo come usarli:

1) Inserire un componente SqlDataSource specificandogli la classica stringa di connessione nella proprietà ConnectionString ed il comando di select nella proprietà SelectCommand.

<asp:SqlDataSource ID=”SqlDataSource1″ runat=”server”
ConnectionString =”Data Source=.;Initial Catalog=miodb;…”
SelectCommand=”select * from…” SelectCommandType=”Text” >

2) Inserire un controllo (come avete sempre fatto) all’interno della pagina es GridView, decidendone le colonne i colori ecc. Per legare il controllo al componente bastera assegnargli alla proprietà DataSourceID l’ID del controllo

<asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”SqlDataSource1″>

3) Avviate la vostra apagina. Il load della pagina fa scattare il DataBind delcontrollo GridView che asua volta utilizzara il comando Select attraverlo la connessione indicata. Tutto chiaro? Fantastico!

Il componenete, oltre a SelectCommand ha anche altre proprietà InsertCommandUpdateCommandDeleteCommand. Vi lasci immaginare a cosa servono ;-).
Una cosa da aggiungere a questi comandi è che tutti supportano (ovviamente) dei paramentri. Esempio se al componente aggiungo:

<asp:SqlDataSource ID=”SqlDataSource1″ runat=”server”
ConnectionString =”Data Source=.;Initial Catalog=miodb;…”
SelectCommand=”select * from miatabella where prezzo>@prezzo” SelectCommandType=”Text” >

<SelectParameters>
<asp:Parameter Name=”prezzo” DefaultValue=”10″ />
</SelectParameters>

</asp:SqlDataSource>

Ecco che verranno estratti solo i campi il cui presso è maggiore di dieci. Esistono diverse tipologie di paramentri:
ControlParameterCookieParameterFormParameterProfileParameterQueryStringParameter,
SessionParameter. Ogniuno dei quali ha la caratteristica di recuperare il valore del paramentro da una specifica “area”; ad esempio mentre il QueryStringParameter recupera il valore da un parametnro che arriva in querystring, il ControlParameter lo recupera dal valore di un altro controllo.

Inutile dirvi che il componente ha metodi ed eventi per soddisfare qualunque esigenza. Al seguente link è sviscerata l’intera sintassi.

microsoft.com

Spero di esservi stato utile.

Amedeo

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
  • Ciao, intanto complimenti per il tuo blog, è facile da “leggere” ed è interessante.
    Noto che ti cimenti in quel bel (ma anche stressante) mestiere dello sviluppo software..
    Volevo consigliarti una nuova community italiana dedicata alla programmazione, che puoi trovare al sito http://www.codingace.it
    E’ un misto tra un forum ed un social network, ma che tiene conto delle risposte date agli utenti che postano problemi, con un sistema di punteggi.
    Piu’ sei bravo, piu’ la tua reputazione aumenta… a breve pubblicheremo anche annunci di lavoro, e le aziende stesse saranno libere di cercare e contattare gli utenti, non solo in base al loro curriculum ma anche secondo la “reputazione” raggiunta.
    Se hai tempo e voglia, facci un giro, posta qualche problema di programmazione, o risolvi quelli degli altri utenti.. e se ti piace magari, dedicaci un articolo ;)!

Pinterest