SqlDataSource.Select(DataSourceSelectArguments) Metoda

Definicja

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.

Dotyczy

Zobacz też