SqlDataSource.Select(DataSourceSelectArguments) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.