Taal

SqlDataSource.Select(DataSourceSelectArguments) Methode

Definitie

Haalt gegevens op uit de onderliggende database met behulp van de SelectCommand SQL-tekenreeks en eventuele parameters in de SelectParameters verzameling.

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

Parameters

arguments
DataSourceSelectArguments

Een DataSourceSelectArguments object dat wordt gebruikt om bewerkingen op de gegevens aan te vragen buiten het ophalen van basisgegevens.

Retouren

Een IEnumerable lijst met gegevensrijen.

Uitzonderingen

Het SqlDataSource object kan geen verbinding maken met de onderliggende gegevensbron.

Voorbeelden

In de volgende voorbeelden ziet u hoe u de Select methode programmatisch aanroept en waarden instelt op basis van het resultaat van de query. In het volgende voorbeeld ziet u de declaratieve code voor de webbesturingselementen.

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

In het volgende voorbeeld ziet u hoe u de Select methode programmatisch aanroept. Het SqlDataSource besturingselement retourneert een geheel getal. De waarde van het gehele getal wordt gebruikt om de tekst van een Label besturingselement in te stellen en om te bepalen of een HyperLink besturingselement moet worden weergegeven.

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

Opmerkingen

De Select methode wordt automatisch aangeroepen tijdens de fase van de PreRender levenscyclus van de pagina. Het wordt aangeroepen door gegevensgebonden besturingselementen die via hun SqlDataSource eigenschap aan een DataSourceID besturingselement zijn gekoppeld.

De Select methode retourneert een DataView object als de DataSourceMode eigenschap is ingesteld op de DataSet waarde. De Select methode retourneert een IDataReader object als de DataSourceMode eigenschap is ingesteld op de DataReader waarde. Sluit het IDataReader object wanneer u klaar bent met het lezen van de gegevens.

Voordat de Select bewerking wordt uitgevoerd, wordt de OnSelecting methode aangeroepen om de Selecting gebeurtenis te genereren. U kunt deze gebeurtenis afhandelen om de waarden van de parameters te onderzoeken en elke verwerking vóór de Select bewerking uit te voeren.

Nadat de Select bewerking is voltooid, wordt de OnSelected methode aangeroepen om de Selected gebeurtenis te genereren. U kunt deze gebeurtenis afhandelen om alle retourwaarden en foutcodes te onderzoeken en eventuele naverwerking uit te voeren.

Als de DataSourceMode eigenschap is ingesteld op SqlDataSourceMode.DataSet en opslaan in cache is ingeschakeld, haalt het SqlDataSource object gegevens op uit en slaat het gegevens op in de cache tijdens de Select bewerking. De cache wordt gemaakt, verwijderd of vernieuwd op basis van het cachegedrag dat is opgegeven door de combinatie van de CacheDuration en CacheExpirationPolicy eigenschappen.

Important

Wanneer u clientimitatie onder Microsoft Windows authentication gebruikt, worden de gegevens in de cache opgeslagen wanneer de eerste gebruiker toegang heeft tot de gegevens. Als een andere gebruiker dezelfde gegevens aanvraagt, worden de gegevens opgehaald uit de cache. De gegevens worden niet opgehaald door een andere aanroep naar de database uit te voeren om de toegang van de gebruiker tot de gegevens te verifiëren. Als u verwacht dat meer dan één gebruiker toegang heeft tot de gegevens en u wilt dat elke ophaalbewerking van gegevens wordt gecontroleerd door de beveiligingsconfiguraties voor de database, gebruikt u geen caching.

Als de DataSourceMode eigenschap is ingesteld SqlDataSourceMode.DataSet op en een FilterExpression eigenschap is opgegeven, wordt de filterexpressie geëvalueerd met opgegeven FilterParameters eigenschappen en wordt het resulterende filter toegepast op de lijst met gegevens tijdens de Select bewerking.

De Select methode delegeert de methode aan de Select methode van het SqlDataSourceView object dat is gekoppeld aan het SqlDataSource besturingselement. Als u een bewerking voor het ophalen van gegevens wilt uitvoeren, bouwt u SqlDataSourceView een DbCommand object met behulp van de SelectCommand tekst en eventuele bijbehorende SelectParameters waarden en voert u vervolgens de DbCommand bewerking uit op basis van de onderliggende database.

Important

Waarden worden ingevoegd in parameters zonder validatie. Dit is een mogelijke beveiligingsrisico. Gebruik de Filtering gebeurtenis om parameterwaarden te valideren voordat u de query uitvoert. Zie Overzicht van Script Exploits voor meer informatie.

Van toepassing op

Zie ook