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.

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.

Gibt zurück

Eine IEnumerable-Liste mit Datenzeilen.

Ausnahmen

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

Beispiele

In den folgenden Beispielen wird gezeigt, 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" />

Im folgenden Beispiel wird gezeigt, wie die Select -Methode programmgesteuert aufgerufen wird. 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 das Lesen der Daten abgeschlossen haben.

Bevor der Select Vorgang ausgeführt wird, wird die OnSelecting -Methode aufgerufen, um das Ereignis auszulösen Selecting . 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 -Ereignis auszulösen Selected . Sie können dieses Ereignis behandeln, um Rückgabewerte und Fehlercodes zu untersuchen und eine nachbereitende Verarbeitung durchzuführen.

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

Wichtig

Wenn Sie den Clientidentitätswechsel 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 durch einen weiteren Aufruf der Datenbank abgerufen, um den Zugriff des Benutzers auf die Daten zu überprüfen. Wenn Sie erwarten, dass mehrere Benutzer auf die Daten zugreifen und jeder Abruf von Daten durch die Sicherheitskonfigurationen für die Datenbank überprüft werden soll, verwenden Sie keine Zwischenspeicherung.

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

Die Select -Methode delegiert an die Select -Methode des SqlDataSourceView Objekts, das dem SqlDataSource Steuerelement zugeordnet ist. Um einen Datenabrufvorgang auszuführen, erstellt ein SqlDataSourceViewDbCommand -Objekt unter Verwendung des SelectCommand Texts und aller zugeordneten SelectParameters Werte und führt dann für die DbCommand zugrunde liegende Datenbank aus.

Wichtig

Werte werden ohne Validierung in Parameter eingefügt, was ein potenzielles Sicherheitsrisiko darstellt. Verwenden Sie das Filtering -Ereignis, um Parameterwerte zu überprüfen, bevor Sie die Abfrage ausführen. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Gilt für:

Weitere Informationen