Sdílet prostřednictvím


SqlDataSource.Select(DataSourceSelectArguments) Metoda

Definice

Načte data z podkladové databáze pomocí SelectCommand řetězce SQL a všech parametrů, které jsou v kolekci SelectParameters .

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

Parametry

arguments
DataSourceSelectArguments

Objekt DataSourceSelectArguments , který se používá k vyžádání operací s daty nad rámec základního načtení dat.

Návraty

Seznam IEnumerable řádků dat.

Výjimky

Objekt SqlDataSource nemůže navázat připojení k podkladovému zdroji dat.

Příklady

Následující příklady ukazují, jak programově volat metodu Select a nastavit hodnoty na základě výsledku dotazu. Následující příklad ukazuje deklarativní kód pro webové ovládací prvky.

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

Následující příklad ukazuje, jak programově volat metodu Select . Ovládací SqlDataSource prvek vrátí celé číslo. Hodnota integer slouží k nastavení textu Label ovládacího prvku a k určení, zda se má ovládací prvek zobrazit HyperLink .

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

Poznámky

Metoda je Select volána automaticky během PreRender fáze životního cyklu stránky. Je volána ovládacími prvky vázanými na data, které byly připojeny k ovládacímu SqlDataSource prvku prostřednictvím své DataSourceID vlastnosti.

Metoda Select vrátí objekt, DataView pokud DataSourceMode je vlastnost nastavena DataSet na hodnotu . Metoda Select vrátí objekt, IDataReader pokud DataSourceMode je vlastnost nastavena DataReader na hodnotu . IDataReader Po dokončení čtení dat objekt zavřete.

Před provedením SelectOnSelecting operace je volána metoda pro vyvolání Selecting události. Tuto událost můžete zpracovat, abyste prozkoumali hodnoty parametrů a provedli jakékoli zpracování před Select operací.

Select Po dokončení OnSelected operace je volána metoda pro vyvolání Selected události. Tuto událost můžete zpracovat, abyste prozkoumali všechny návratové hodnoty a kódy chyb a provedli jakékoli následné zpracování.

Pokud je vlastnost nastavena DataSourceMode na SqlDataSourceMode.DataSet a ukládání do mezipaměti je povoleno, SqlDataSource objekt načte data z mezipaměti a uloží je do mezipaměti během Select operace. Mezipaměť je vytvořena, zahozena nebo aktualizována na základě chování při ukládání do mezipaměti, které je určeno kombinací CacheDuration vlastností a CacheExpirationPolicy .

Důležité

Pokud používáte zosobnění klienta v rámci ověřování systému Microsoft Windows, data se ukládají do mezipaměti, když k datům přistupuje první uživatel. Pokud o stejná data požádá jiný uživatel, načtou se data z mezipaměti. Data se nenačtou jiným voláním databáze za účelem ověření přístupu uživatele k datům. Pokud očekáváte, že k datům bude přistupovat více uživatelů a chcete, aby každé načtení dat bylo ověřeno konfigurací zabezpečení databáze, nepoužívejte ukládání do mezipaměti.

DataSourceMode Pokud je vlastnost nastavena na SqlDataSourceMode.DataSet a FilterExpression byla zadána vlastnost, vyhodnotí se výraz filtru se všemi zadanými FilterParameters vlastnostmi a výsledný filtr se během Select operace použije na seznam dat.

Metoda Select deleguje metodu Select objektu SqlDataSourceView , který je přidružen k ovládacímu prvku SqlDataSource . Aby bylo možné provést operaci načtení dat, SqlDataSourceView sestaví DbCommand objekt pomocí SelectCommand textu a všech přidružených SelectParameters hodnot a pak provede DbCommand operaci proti podkladové databázi.

Důležité

Hodnoty se do parametrů vkládají bez ověření, což je potenciální ohrožení zabezpečení. Filtering Pomocí události ověřte hodnoty parametrů před spuštěním dotazu. Další informace najdete v tématu Přehled zneužití skriptů.

Platí pro

Viz také