Compartilhar via


SqlDataSource.Select(DataSourceSelectArguments) Método

Definição

Recupera dados do banco de dados subjacente usando a SelectCommand cadeia de caracteres SQL e todos os parâmetros que estão na SelectParameters coleção.

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

Parâmetros

arguments
DataSourceSelectArguments

Um DataSourceSelectArguments objeto usado para solicitar operações nos dados além da recuperação básica de dados.

Retornos

Uma IEnumerable lista de linhas de dados.

Exceções

O SqlDataSource objeto não pode estabelecer uma conexão com a fonte de dados subjacente.

Exemplos

Os exemplos a seguir mostram como chamar programaticamente o Select método e definir valores com base no resultado da consulta. O exemplo a seguir mostra o código declarativo para os controles da 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" />

O exemplo a seguir mostra como chamar o Select método programaticamente. O SqlDataSource controle retorna um inteiro. O valor do inteiro é usado para definir o texto de um Label controle e determinar se um HyperLink controle deve ser exibido.

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

Comentários

O Select método é chamado automaticamente durante a PreRender fase do ciclo de vida da página. Ele é chamado por controles associados a dados que foram anexados a um SqlDataSource controle por meio de sua DataSourceID propriedade.

O Select método retornará um DataView objeto se a DataSourceMode propriedade estiver definida como o DataSet valor. O Select método retornará um IDataReader objeto se a DataSourceMode propriedade estiver definida como o DataReader valor. Feche o IDataReader objeto quando terminar de ler os dados.

Antes que a Select operação seja executada, o OnSelecting método é chamado para acionar o Selecting evento. Você pode lidar com esse evento para examinar os valores dos parâmetros e executar qualquer processamento antes da Select operação.

Após a conclusão da Select operação, o OnSelected método é chamado para acionar o Selected evento. Você pode lidar com esse evento para examinar quaisquer valores retornados e códigos de erro e executar qualquer pós-processamento.

Se a DataSourceMode propriedade estiver definida SqlDataSourceMode.DataSet e o cache estiver habilitado, o SqlDataSource objeto recuperará dados e salvará dados no cache durante a Select operação. O cache é criado, descartado ou atualizado com base no comportamento de cache especificado pela combinação das propriedades e do CacheDuration cache CacheExpirationPolicy .

Importante

Quando você está usando a representação do cliente na autenticação do Microsoft Windows, os dados são armazenados em cache quando o primeiro usuário acessa os dados. Se outro usuário solicitar os mesmos dados, os dados serão recuperados do cache. Os dados não são recuperados fazendo outra chamada para o banco de dados para verificar o acesso do usuário aos dados. Se você espera que mais de um usuário acesse os dados e deseja que cada recuperação de dados seja verificada pelas configurações de segurança do banco de dados, não use o cache.

Se a DataSourceMode propriedade estiver definida SqlDataSourceMode.DataSet e uma FilterExpression propriedade tiver sido especificada, a expressão de filtro será avaliada com quaisquer propriedades fornecidas FilterParameters e o filtro resultante será aplicado à lista de dados durante a Select operação.

O Select método delega ao Select método do SqlDataSourceView objeto associado ao SqlDataSource controle. Para executar uma operação de recuperação de dados, ele SqlDataSourceView cria um DbCommand objeto usando o SelectCommand texto e quaisquer valores associados SelectParameters e, em seguida, executa o DbCommand banco de dados subjacente.

Importante

Os valores são inseridos em parâmetros sem validação, o que é uma possível ameaça à segurança. Use o Filtering evento para validar valores de parâmetro antes de executar a consulta. Para obter mais informações, consulte Visão geral das Explorações de Script.

Aplica-se a

Confira também