SqlDataSource.Select(DataSourceSelectArguments) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.