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
DataSourceSelectArguments Objekt, 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 celého čísla se používá 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 Select se automaticky volá během PreRender fáze životního cyklu stránky. Označuje se ovládacími prvky vázanými na data, které byly připojeny k ovládacímu SqlDataSource prvku prostřednictvím jejich DataSourceID vlastnosti.
Metoda Select vrátí DataView objekt, pokud DataSourceMode je vlastnost nastavena na DataSet hodnotu. Metoda Select vrátí IDataReader objekt, pokud DataSourceMode je vlastnost nastavena na DataReader hodnotu. IDataReader Po dokončení čtení dat objekt zavřete.
Před provedením SelectOnSelecting operace se volá 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 se volá 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 povolena, SqlDataSource objekt načte data z mezipaměti a uloží je do mezipaměti během Select operace. Mezipaměť se vytvoří, zahodí nebo aktualizuje na základě chování při ukládání do mezipaměti určené kombinací CacheDuration vlastností a CacheExpirationPolicy vlastností.
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 jiný uživatel požádá o stejná data, data se načtou z mezipaměti. Data se nenačtou dalším voláním databáze, aby ověřila přístup uživatele k datům. Pokud očekáváte, že k datům přistupuje více uživatelů a chcete, aby každé načítání dat bylo ověřeno konfiguracemi zabezpečení pro databázi, nepoužívejte ukládání do mezipaměti.
DataSourceMode Pokud je vlastnost nastavena SqlDataSourceMode.DataSet a FilterExpression vlastnost byla zadána, výraz filtru se vyhodnotí s libovolnými zadanými FilterParameters vlastnostmi a výsledný filtr se použije na seznam dat během Select operace.
Metoda Select deleguje na metodu Select objektu SqlDataSourceView , který je přidružen k ovládacímu SqlDataSource prvku. Aby bylo možné provést operaci načítání dat, SqlDataSourceView sestaví DbCommand objekt pomocí SelectCommand textu a všech přidružených SelectParameters hodnot a potom provede DbCommand proti podkladové databázi.
Důležité
Hodnoty se vloží do parametrů bez ověření, což je potenciální bezpečnostní hrozba. Filtering Před spuštěním dotazu pomocí události ověřte hodnoty parametrů. Další informace naleznete v tématu Přehled zneužití skriptů.