SqlDataSource.Select(DataSourceSelectArguments) Metod

Definition

Hämtar data från den underliggande databasen med hjälp av SQL-strängen SelectCommand och alla parametrar som finns i SelectParameters samlingen.

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

Parametrar

arguments
DataSourceSelectArguments

Ett DataSourceSelectArguments objekt som används för att begära åtgärder på data utöver grundläggande datahämtning.

Returer

En IEnumerable lista över datarader.

Undantag

Objektet SqlDataSource kan inte upprätta en anslutning till den underliggande datakällan.

Exempel

I följande exempel visas hur du programmatiskt anropar Select metoden och anger värden baserat på resultatet av frågan. I följande exempel visas deklarativ kod för webbkontrollerna.

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

I följande exempel visas hur du programmatiskt anropar Select metoden. Kontrollen SqlDataSource returnerar ett heltal. Heltalsvärdet används för att ange texten i en Label kontroll och för att avgöra om en HyperLink kontroll ska visas.

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

Kommentarer

Metoden Select anropas automatiskt under PreRender fasen av sidlivscykeln. Den anropas av databundna kontroller som har kopplats till en SqlDataSource kontroll via deras DataSourceID egenskap.

Metoden Select returnerar ett DataView objekt om egenskapen DataSourceMode är inställd på DataSet värdet. Metoden Select returnerar ett IDataReader objekt om egenskapen DataSourceMode är inställd på DataReader värdet. Stäng objektet IDataReader när du har läst data.

Innan åtgärden Select utförs OnSelecting anropas metoden för att skapa Selecting händelsen. Du kan hantera den här händelsen för att undersöka parametrarnas värden och utföra eventuell bearbetning före åtgärden Select .

När åtgärden Select har slutförts anropas OnSelected metoden för att skapa Selected händelsen. Du kan hantera den här händelsen för att undersöka eventuella returvärden och felkoder och utföra eventuella efterbearbetningar.

Om egenskapen DataSourceMode är inställd på SqlDataSourceMode.DataSet och cachelagring är aktiverad SqlDataSource hämtar objektet data från och sparar data i cacheminnet under åtgärden Select . Cachen skapas, ignoreras eller uppdateras baserat på cachelagringsbeteendet som anges av kombinationen av CacheDuration egenskaperna och CacheExpirationPolicy .

Important

När du använder klientpersonifiering under Microsoft Windows authentication cachelagras data när den första användaren kommer åt data. Om en annan användare begär samma data hämtas data från cacheminnet. Data hämtas inte genom att göra ett nytt anrop till databasen för att verifiera användarens åtkomst till data. Om du förväntar dig att fler än en användare ska komma åt data och du vill att varje hämtning av data ska verifieras av säkerhetskonfigurationerna för databasen ska du inte använda cachelagring.

Om egenskapen DataSourceMode är inställd på SqlDataSourceMode.DataSet och en FilterExpression egenskap har angetts utvärderas filteruttrycket med alla angivna FilterParameters egenskaper och det resulterande filtret tillämpas på listan över data under åtgärden Select .

Metoden Select delegerar till metoden för Select objektet SqlDataSourceView som är associerat med SqlDataSource kontrollen. För att utföra en datahämtningsåtgärd skapar objektet SqlDataSourceView med hjälp DbCommand av texten och eventuella associerade SelectCommand värden och kör SelectParameters sedan mot den underliggande DbCommand databasen.

Important

Värden infogas i parametrar utan validering, vilket är ett potentiellt säkerhetshot. Filtering Använd händelsen för att verifiera parametervärden innan du kör frågan. Mer information finns i Översikt över skriptexploateringar.

Gäller för

Se även