SqlDataSource.Select(DataSourceSelectArguments) Metodo

Definizione

Recupera dati dal database sottostante utilizzando la stringa SQL SelectCommand e tutti i parametri dell'insieme SelectParameters.

public:
 System::Collections::IEnumerable ^ Select(System::Web::UI::DataSourceSelectArguments ^ arguments);
public System.Collections.IEnumerable Select (System.Web.UI.DataSourceSelectArguments arguments);
member this.Select : System.Web.UI.DataSourceSelectArguments -> System.Collections.IEnumerable
Public Function Select (arguments As DataSourceSelectArguments) As IEnumerable

Parametri

arguments
DataSourceSelectArguments

Oggetto DataSourceSelectArguments utilizzato per richiedere operazioni sui dati oltre il recupero dei dati di base.

Restituisce

Elenco IEnumerable di righe di dati.

Eccezioni

L'oggetto SqlDataSource non può stabilire una connessione con l'origine dati sottostante.

Esempio

Negli esempi seguenti viene illustrato come chiamare il Select metodo a livello di codice e impostare i valori in base al risultato della query. Nell'esempio seguente viene illustrato il codice dichiarativo per i controlli Web.

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
    ID="Button1" 
    Text="Check Reorder Status" 
    runat="server" 
    onclick="Button1_Click" />
<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
   ID="Button1" 
   Text="Check Reorder Status" 
   runat="server" 
   onclick="Button1_Click" />

Nell'esempio seguente viene illustrato come chiamare il Select metodo a livello di codice. Il SqlDataSource controllo restituisce un numero intero. Il valore dell'intero viene utilizzato per impostare il testo di un Label controllo e per determinare se visualizzare un HyperLink controllo.

protected void CheckReorderStatus()
{
    DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    int reorderedProducts = (int)dv.Table.Rows[0][0];
    if (reorderedProducts > 0)
    {
        Label1.Text = "Number of products on reorder: " + reorderedProducts;
    }
    else
    {
        Label1.Text = "No products on reorder.";
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    CheckReorderStatus();
}
Protected Sub CheckReorderStatus()
    Dim dv As DataView
    Dim reorderedProducts As Integer

    dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
    reorderedProducts = CType(dv.Table.Rows(0)(0), Integer)
    If (reorderedProducts > 0) Then
        Label1.Text = "Number of products on reorder: " & reorderedProducts
    Else
        Label1.Text = "No products on reorder."
    End If
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    CheckReorderStatus()
End Sub

Commenti

Il Select metodo viene chiamato automaticamente durante la PreRender fase del ciclo di vita della pagina. Viene chiamato da controlli associati a dati collegati a un SqlDataSource controllo tramite la relativa DataSourceID proprietà.

Il Select metodo restituisce un DataView oggetto se la DataSourceMode proprietà è impostata sul DataSet valore . Il Select metodo restituisce un IDataReader oggetto se la DataSourceMode proprietà è impostata sul DataReader valore . Chiudere l'oggetto IDataReader al termine della lettura dei dati.

Prima di eseguire l'operazione Select , viene chiamato il OnSelecting metodo per generare l'evento Selecting . È possibile gestire questo evento per esaminare i valori dei parametri e per eseguire qualsiasi elaborazione prima dell'operazione Select .

Al termine dell'operazione Select , viene chiamato il OnSelected metodo per generare l'evento Selected . È possibile gestire questo evento per esaminare i valori restituiti e i codici di errore e per eseguire qualsiasi post-elaborazione.

Se la proprietà è impostata su e la DataSourceMode memorizzazione nella cache è abilitata, l'oggetto SqlDataSource recupera i dati da e salva i dati nella cache durante l'operazioneSelect.SqlDataSourceMode.DataSet La cache viene creata, eliminata o aggiornata in base al comportamento di memorizzazione nella cache specificato dalla combinazione delle CacheDuration proprietà e CacheExpirationPolicy .

Importante

Quando si usa la rappresentazione client in Microsoft autenticazione di Windows, i dati vengono memorizzati nella cache quando il primo utente accede ai dati. Se un altro utente richiede gli stessi dati, i dati vengono recuperati dalla cache. I dati non vengono recuperati effettuando un'altra chiamata al database per verificare l'accesso dell'utente ai dati. Se si prevede che più di un utente accinga ai dati e si desideri che ogni recupero dei dati venga verificato dalle configurazioni di sicurezza per il database, non usare la memorizzazione nella cache.

Se la DataSourceMode proprietà è impostata su SqlDataSourceMode.DataSet e è stata specificata una FilterExpression proprietà, l'espressione di filtro viene valutata con le proprietà specificate FilterParameters e il filtro risultante viene applicato all'elenco di dati durante l'operazione Select .

Il Select metodo delega al Select metodo dell'oggetto SqlDataSourceView associato al SqlDataSource controllo . Per eseguire un'operazione di recupero dati, compila SqlDataSourceView un DbCommand oggetto usando il SelectCommand testo e tutti i valori associati SelectParameters e quindi esegue l'oggetto DbCommand sul database sottostante.

Importante

I valori vengono inseriti in parametri senza convalida, ovvero una potenziale minaccia per la sicurezza. Usare l'evento Filtering per convalidare i valori dei parametri prima di eseguire la query. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.

Si applica a

Vedi anche