SqlDataSource.Select(DataSourceSelectArguments) Methode

Definition

Ruft Daten aus der zugrunde liegenden Datenbank mithilfe der SelectCommand-SQL-Zeichenfolge und aller Parameter in der SelectParameters-Auflistung ab.Retrieves data from the underlying database by using the SelectCommand SQL string and any parameters that are in the SelectParameters collection.

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 zum Anfordern von Datenvorgängen verwendet wird, die über allgemeine Vorgänge zum Datenabruf hinausgehen.A DataSourceSelectArguments object that is used to request operations on the data beyond basic data retrieval.

Gibt zurück

Eine IEnumerable-Liste mit Datenzeilen.An IEnumerable list of data rows.

Ausnahmen

Das SqlDataSource-Objekt kann keine Verbindung mit der zugrunde liegenden Datenquelle herstellen.The SqlDataSource object cannot establish a connection with the underlying data source.

Beispiele

In den folgenden Beispielen wird gezeigt, wie die Select -Methode Programm gesteuert aufgerufen und Werte basierend auf dem Ergebnis der Abfrage festgelegt werden.The following examples show how to programmatically call the Select method and set values based on the result of the query. Das folgende Beispiel zeigt den deklarativen Code für die websteuer Elemente.The following example shows the declarative code for the Web controls.

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] &gt; 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] &gt; 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" />

Im folgenden Beispiel wird gezeigt, wie die Select -Methode Programm gesteuert aufgerufen wird.The following example shows how to programmatically call the Select method. Das SqlDataSource -Steuerelement gibt eine ganze Zahl zurück.The SqlDataSource control returns an integer. Der Wert der ganzen Zahl wird verwendet, um den Text eines Label -Steuer Elements festzulegen und zu bestimmen, ob ein HyperLink -Steuerelement angezeigt werden soll.The value of the integer is used to set the text of a Label control and to determine whether to display a HyperLink control.

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 automatisch während der PreRender Phase des Lebenszyklus der Seite aufgerufen.The Select method is automatically called during the PreRender phase of the page life cycle. Sie wird durch Daten gebundene Steuerelemente aufgerufen, die über die SqlDataSource DataSourceID -Eigenschaft an ein-Steuerelement angefügt wurden.It is called by data-bound controls that have been attached to a SqlDataSource control through their DataSourceID property.

Die Select Methode gibt ein DataView -Objekt zurück DataSourceMode , wenn die-Eigenschaft DataSet auf den-Wert festgelegt ist.The Select method returns a DataView object if the DataSourceMode property is set to the DataSet value. Die Select Methode gibt ein IDataReader -Objekt zurück DataSourceMode , wenn die-Eigenschaft DataReader auf den-Wert festgelegt ist.The Select method returns a IDataReader object if the DataSourceMode property is set to the DataReader value. Schließen Sie IDataReader das Objekt, wenn Sie mit dem Lesen der Daten fertig sind.Close the IDataReader object when you have finished reading the data.

Bevor der Select -Vorgang ausgeführt wird, OnSelecting wird die-Methode aufgerufen, Selecting um das-Ereignis zu erhöhen.Before the Select operation is performed, the OnSelecting method is called to raise the Selecting event. Sie können dieses Ereignis behandeln, um die Werte der Parameter zu überprüfen und vor dem Select Vorgang beliebige Verarbeitungsvorgänge auszuführen.You can handle this event to examine the values of the parameters and to perform any processing before the Select operation.

Nachdem der Select Vorgang abgeschlossen wurde, OnSelected wird die-Methode aufgerufen, Selected um das-Ereignis zu erhöhen.After the Select operation completes, the OnSelected method is called to raise the Selected event. Sie können dieses Ereignis behandeln, um alle Rückgabewerte und Fehlercodes zu überprüfen und Nachbearbeitung auszuführen.You can handle this event to examine any return values and error codes and to perform any post-processing.

Wenn die DataSourceMode -Eigenschaft auf SqlDataSourceMode.DataSet festgelegt ist und Caching aktiviert ist SqlDataSource , ruft das-Objektdaten aus ab und speichert Daten im Cache Select während des Vorgangs.If the DataSourceMode property is set to SqlDataSourceMode.DataSet and caching is enabled, the SqlDataSource object retrieves data from and saves data to the cache during the Select operation. Der Cache wird basierend auf dem zwischen Speicherungs Verhalten, das durch die Kombination der CacheDuration -Eigenschaft und der- CacheExpirationPolicy Eigenschaft angegeben wird, erstellt, verworfen oder aktualisiert.The cache is created, discarded, or refreshed based on the caching behavior that is specified by the combination of the CacheDuration and CacheExpirationPolicy properties.

Wichtig

Wenn Sie einen Client Identitätswechsel unter der Microsoft Windows-Authentifizierung verwenden, werden die Daten zwischengespeichert, wenn der erste Benutzer auf die Daten zugreift.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Wenn ein anderer Benutzer die gleichen Daten anfordert, werden die Daten aus dem Cache abgerufen.If another user requests the same data, the data is retrieved from the cache. Die Daten werden nicht durch einen weiteren Daten Bank Abruf abgerufen, um den Zugriff des Benutzers auf die Daten zu überprüfen.The data is not retrieved by making another call to the database to verify the user's access to the data. Wenn Sie davon ausgehen, dass mehr als ein Benutzer auf die Daten zugreifen muss und jeder Datenabruf durch die Sicherheits Konfigurationen für die Datenbank überprüft werden soll, sollten Sie die Zwischenspeicherung nicht verwenden.If you expect more than one user to access the data, and you want each retrieval of data to be verified by the security configurations for the database, do not use caching.

Wenn die DataSourceMode -Eigenschaft auf SqlDataSourceMode.DataSet festgelegt ist FilterExpression und eine-Eigenschaft angegeben wurde, wird FilterParameters der Filter Ausdruck mit allen angegebenen Eigenschaften ausgewertet, und der resultierende Filter wird auf die Liste der Daten während des SelectVorgang.If the DataSourceMode property is set to SqlDataSourceMode.DataSet and a FilterExpression property has been specified, the filter expression is evaluated with any supplied FilterParameters properties and the resulting filter is applied to the list of data during the Select operation.

Die Select -Methode delegiert an Select die-Methode SqlDataSourceView des-Objekts, das dem SqlDataSource -Steuerelement zugeordnet ist.The Select method delegates to the Select method of the SqlDataSourceView object that is associated with the SqlDataSource control. Um einen Datenabruf Vorgang auszuführen, erstellt SqlDataSourceView das ein DbCommand -Objekt mithilfe des SelectCommand Texts und der zugehörigen SelectParameters Werte und führt dann das DbCommand -Objekt für die zugrunde liegende Datenbank aus.To perform a data retrieval operation, the SqlDataSourceView builds a DbCommand object by using the SelectCommand text and any associated SelectParameters values, and then executes the DbCommand against the underlying database.

Wichtig

Werte werden ohne Validierung in Parameter eingefügt, was ein potenzielles Sicherheitsrisiko darstellt.Values are inserted into parameters without validation, which is a potential security threat. Verwenden Sie Filtering das-Ereignis, um Parameterwerte vor dem Ausführen der Abfrage zu überprüfen.Use the Filtering event to validate parameter values before executing the query. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.For more information, see Script Exploits Overview.

Gilt für:

Siehe auch