Condividi tramite


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 a livello di codice il Select metodo 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 a livello di codice il Select metodo. Il SqlDataSource controllo restituisce un intero. Il valore dell'intero viene usato 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 dai controlli associati ai 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 , il OnSelected metodo viene chiamato 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 DataSourceMode proprietà è impostata su SqlDataSourceMode.DataSet e la memorizzazione nella cache è abilitata, l'oggetto SqlDataSource recupera i dati da e salva i dati nella cache durante l'operazione Select . La cache viene creata, eliminata o aggiornata in base al comportamento di memorizzazione nella cache specificata dalla combinazione delle CacheDuration proprietà e CacheExpirationPolicy .

Importante

Quando si usa la rappresentazione client nell'autenticazione di Microsoft 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 eseguendo un'altra chiamata al database per verificare l'accesso dell'utente ai dati. Se si prevede che più utenti accedono ai dati e si desidera 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 FilterExpression una proprietà è stata specificata, 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, la SqlDataSourceView compilazione di 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 nei parametri senza convalida, ovvero una potenziale minaccia di 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