Freigeben über


SqlDataSource.Select(DataSourceSelectArguments) Methode

Definition

Ruft Daten aus der zugrunde liegenden Datenbank mithilfe der SelectCommand SQL-Zeichenfolge und aller Parameter ab, die sich in der SelectParameters Auflistung befinden.

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

Parameter

arguments
DataSourceSelectArguments

Ein DataSourceSelectArguments Objekt, das verwendet wird, um Vorgänge für die Daten anzufordern, die über das grundlegende Abrufen von Daten hinausgehen.

Gibt zurück

Eine IEnumerable Liste von Datenzeilen.

Ausnahmen

Das SqlDataSource Objekt kann keine Verbindung mit der zugrunde liegenden Datenquelle herstellen.

Beispiele

Die folgenden Beispiele zeigen, wie Sie die Select Methode programmgesteuert aufrufen und Werte basierend auf dem Ergebnis der Abfrage festlegen. Das folgende Beispiel zeigt den deklarativen Code für die Websteuerelemente.

<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" />

Das folgende Beispiel zeigt, wie Sie die Select Methode programmgesteuert aufrufen. Das SqlDataSource Steuerelement gibt eine ganze Zahl zurück. Der Wert der ganzen Zahl wird verwendet, um den Text eines Label Steuerelements festzulegen und zu bestimmen, ob ein HyperLink Steuerelement angezeigt werden soll.

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

Hinweise

Die Select Methode wird während der PreRender Phase des Seitenlebenszyklus automatisch aufgerufen. Sie wird von datengebundenen Steuerelementen aufgerufen, die über ihre DataSourceID Eigenschaft an ein SqlDataSource Steuerelement angefügt wurden.

Die Select Methode gibt ein DataView Objekt zurück, wenn die DataSourceMode Eigenschaft auf den DataSet Wert festgelegt ist. Die Select Methode gibt ein IDataReader Objekt zurück, wenn die DataSourceMode Eigenschaft auf den DataReader Wert festgelegt ist. Schließen Sie das IDataReader Objekt, wenn Sie mit dem Lesen der Daten fertig sind.

Bevor der Select Vorgang ausgeführt wird, wird die OnSelecting Methode aufgerufen, um das Selecting Ereignis auszuheben. Sie können dieses Ereignis behandeln, um die Werte der Parameter zu untersuchen und eine beliebige Verarbeitung vor dem Select Vorgang auszuführen.

Nach Abschluss des Select Vorgangs wird die OnSelected Methode aufgerufen, um das Selected Ereignis auszuheben. Sie können dieses Ereignis behandeln, um alle Rückgabewerte und Fehlercodes zu untersuchen und jede Nachbearbeitung durchzuführen.

Wenn die DataSourceMode Eigenschaft auf SqlDataSourceMode.DataSet "Zwischenspeichern" festgelegt und aktiviert ist, ruft das SqlDataSource Objekt Daten aus dem Cache während des Select Vorgangs ab und speichert sie im Cache. Der Cache wird basierend auf dem Zwischenspeicherungsverhalten erstellt, verworfen oder aktualisiert, das durch die Kombination der Eigenschaften und CacheExpirationPolicy die CacheDuration Kombination angegeben wird.

Von Bedeutung

Wenn Sie den Identitätswechsel des Clients unter Microsoft Windows-Authentifizierung verwenden, werden die Daten zwischengespeichert, wenn der erste Benutzer auf die Daten zugreift. Wenn ein anderer Benutzer dieselben Daten anfordert, werden die Daten aus dem Cache abgerufen. Die Daten werden nicht abgerufen, indem sie einen weiteren Aufruf der Datenbank durchführen, um den Zugriff des Benutzers auf die Daten zu überprüfen. Wenn Sie davon ausgehen, dass mehrere Benutzer auf die Daten zugreifen, und sie möchten, dass jeder Abruf von Daten von den Sicherheitskonfigurationen für die Datenbank überprüft wird, verwenden Sie keine Zwischenspeicherung.

Wenn die DataSourceMode Eigenschaft auf SqlDataSourceMode.DataSet eine Eigenschaft festgelegt ist und eine FilterExpression Eigenschaft angegeben wurde, wird der Filterausdruck mit allen bereitgestellten FilterParameters Eigenschaften ausgewertet, und der resultierende Filter wird während des Select Vorgangs auf die Liste der Daten angewendet.

Die Select Methode delegiert an die Select Methode des SqlDataSourceView Objekts, das dem SqlDataSource Steuerelement zugeordnet ist. Zum Ausführen eines Datenabrufvorgangs erstellt das SqlDataSourceView Objekt mithilfe DbCommand des SelectCommand Texts und aller zugehörigen SelectParameters Werte und führt dann die DbCommand zugrunde liegende Datenbank aus.

Von Bedeutung

Werte werden ohne Überprüfung in Parameter eingefügt, was eine potenzielle Sicherheitsgefahr ist. Verwenden Sie das Filtering Ereignis, um Parameterwerte zu überprüfen, bevor Sie die Abfrage ausführen. Weitere Informationen finden Sie unter Script Exploits Overview.

Gilt für:

Weitere Informationen