#954 - Impostare a runtime la query di selezione con SqlDataSource
Nello script #877 abbiamo visto come impostare a runtime il valore dei parametri delle query eseguite da un SqlDataSource.
Analogamente, è possibile impostare la query. Prendiamo ad esempio il seguente SqlDataSource:
<asp:SqlDataSource ID="GameSqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionStringDataBase %>"
SelectCommand="SELECT [ID], [NomeGioco], [IDGenere] FROM [Giochi] WHERE ([IDGenere] = @IDGenere)"
OnSelecting="GameSqlDataSource_Selecting" >
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="IDGenere" type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
Una semplice query estrae il nome del gioco in base ad una delle categorie disponibili, selezionata meditante l'uso di una DropDownList, ma in alcuni casi può essere necessario selezionare tutti i giochi indipendentemente dalla categoria.
Creiamo un event handler per l'evento Selecting, in cui la funzione riceve un oggetto del tipo SqlDataSourceSelectingEventArgs, così che mediante la proprietà Command, di tipo DbCommand, imposteremo la query ed elimineremo i parametri non più necessari.
protected void GameSqlDataSource_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
if (DropDownList1.SelectedValue == "0")
{
e.Command.CommandText = "SELECT [ID], [NomeGioco], [IDGenere] FROM [Giochi]";
e.Command.Parameters.Clear();
}
}
Approfondimenti
- Nuovi corsi su ASP.NET 3.5 e LINQ a catalogo
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Galleria fotografica dinamica con ASP.NET AJAX
- #922 - Utilizzare il metodo Page.SetFocus per impostare il focus all'interno della form
- #929 - Impersonation di utente per l'esecuzione di codice in una pagina ASP.NET
- Introduzione ad ASP.NET 3.5
- #924 - Evitare problemi di path canonicalization con ASP.NET
- #947 - La direttiva OutputCache con ASP.NET 2.0 e 3.5
- #959 - Le novità di Cache in ASP.NET 3.5 SP 1
- #932 - Il controllo ListView di ASP.NET 3.5
- Cosa c'è in ASP.NET 3.5 Service Pack1
- Realizzare un custom extender AJAX con ASP.NET 3.5
Commenti
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!