SqlDataSource.Select(DataSourceSelectArguments) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ů.