Udostępnij za pośrednictwem


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 SelectParameters kolekcji.

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 używany do żądania operacji na danych poza podstawowym pobieraniem 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 kod deklaratywny dla 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 wywoływana automatycznie w PreRender fazie cyklu życia strony. Jest on wywoływany 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ć, aby zbadać wartości parametrów i wykonać jakiekolwiek przetwarzanie przed operacją Select .

Po zakończeniu Select operacji wywoływana OnSelected jest metoda w celu wywołania Selected zdarzenia. To zdarzenie można obsłużyć, aby zbadać wszystkie wartości zwracane 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 podczas Select operacji. Pamięć podręczna jest tworzona, odrzucana lub odświeżona na podstawie zachowania buforowania określonego przez kombinację CacheDuration właściwości i CacheExpirationPolicy .

Ważna

Gdy używasz 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 zażą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 będzie uzyskiwać 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 przy użyciu dowolnych dostarczonych FilterParameters właściwości, 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żna

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 Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

Dotyczy

Zobacz też