SqlDataSource.Select(DataSourceSelectArguments) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera dane z bazowej bazy danych przy użyciu SelectCommand ciągu SQL i wszystkich parametrów, które znajdują się w kolekcji 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 Obiekt, który jest używany do żądania operacji na danych poza podstawowe pobieranie danych.
Zwraca
Lista IEnumerable wierszy danych.
Wyjątki
Obiekt SqlDataSource nie może nawiązać połączenia z bazowym źródłem danych.
Przykłady
W poniższych przykładach pokazano, jak programowo wywołać metodę Select i ustawić wartości na podstawie wyniku zapytania. W poniższym przykładzie przedstawiono deklaratywny kod kontrolek sieci Web.
<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" />
W poniższym przykładzie pokazano, jak programowo wywołać metodę Select . Kontrolka SqlDataSource zwraca liczbę całkowitą. Wartość liczby całkowitej służy do ustawiania tekstu kontrolki Label i określania, czy ma być wyświetlana kontrolka 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
Uwagi
Metoda Select jest automatycznie wywoływana w PreRender fazie cyklu życia strony. Jest wywoływana przez kontrolki powiązane z danymi, które zostały dołączone do kontrolki SqlDataSource za pośrednictwem ich DataSourceID właściwości.
Metoda Select zwraca DataView obiekt, jeśli DataSourceMode właściwość jest ustawiona DataSet na wartość. Metoda Select zwraca IDataReader obiekt, jeśli DataSourceMode właściwość jest ustawiona DataReader na wartość. Zamknij obiekt po zakończeniu IDataReader odczytywania danych.
Przed wykonaniem Select operacji wywoływana OnSelecting jest metoda w celu wywołania Selecting zdarzenia. To zdarzenie można obsłużyć w celu zbadania wartości parametrów i wykonania dowolnego przetwarzania przed operacją Select .
Po zakończeniu Select operacji metoda jest wywoływana OnSelected , aby zgłosić Selected zdarzenie. To zdarzenie można obsłużyć, aby zbadać wszystkie zwracane wartości i kody błędów oraz wykonać dowolne przetwarzanie końcowe.
DataSourceMode Jeśli właściwość jest ustawiona na SqlDataSourceMode.DataSet i buforowanie jest włączona, SqlDataSource obiekt pobiera dane z i zapisuje dane w pamięci podręcznej Select podczas operacji. Pamięć podręczna jest tworzona, odrzucana lub odświeżona na podstawie zachowania buforowania określonego CacheDuration przez kombinację właściwości i CacheExpirationPolicy .
Ważne
W przypadku korzystania z personifikacji klienta w ramach uwierzytelniania systemu Microsoft Windows dane są buforowane, gdy pierwszy użytkownik uzyskuje dostęp do danych. Jeśli inny użytkownik żąda tych samych danych, dane są pobierane z pamięci podręcznej. Dane nie są pobierane przez wykonanie innego wywołania bazy danych w celu zweryfikowania dostępu użytkownika do danych. Jeśli oczekujesz, że więcej niż jeden użytkownik uzyskuje dostęp do danych i chcesz, aby każde pobieranie danych było weryfikowane przez konfiguracje zabezpieczeń bazy danych, nie używaj buforowania.
DataSourceMode Jeśli właściwość jest ustawiona na SqlDataSourceMode.DataSet i FilterExpression właściwość została określona, wyrażenie filtru jest oceniane z dowolnymi podanymi FilterParameters właściwościami, a wynikowy filtr jest stosowany do listy danych podczas Select operacji.
Metoda Select deleguje do Select metody obiektu skojarzonego SqlDataSourceView z kontrolką SqlDataSource . Aby wykonać operację pobierania danych, SqlDataSourceView kompiluje DbCommand obiekt przy użyciu SelectCommand tekstu i skojarzonych SelectParameters wartości, a następnie wykonuje obiekt DbCommand względem bazowej bazy danych.
Ważne
Wartości są wstawiane do parametrów bez walidacji, co jest potencjalnym zagrożeniem bezpieczeństwa. Filtering Użyj zdarzenia, aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.