SqlDataSource.Select(DataSourceSelectArguments) Método

Definição

Recupera dados do banco de dados subjacente usando a cadeia de caracteres SQL SelectCommand e os parâmetros na coleção 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

Parâmetros

arguments
DataSourceSelectArguments

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

Retornos

Uma lista IEnumerable de linhas de dados.

Exceções

O objeto SqlDataSource 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 programaticamente o Select método . O SqlDataSource controle retorna um inteiro. O valor do inteiro é usado para definir o texto de um Label controle e determinar se deseja exibir um HyperLink controle.

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 for definida como o DataSet valor . O Select método retornará um IDataReader objeto se a DataSourceMode propriedade for 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 gerar o Selecting evento. Você pode manipular 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 gerar o Selected evento. Você pode manipular esse evento para examinar quaisquer valores retornados e códigos de erro e para executar qualquer pós-processamento.

Se a DataSourceMode propriedade estiver definida como SqlDataSourceMode.DataSet e o cache estiver habilitado, o SqlDataSource objeto recuperará dados de 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 CacheDuration propriedades e CacheExpirationPolicy .

Importante

Quando você está usando a representação de cliente no Microsoft autenticação do 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 ao 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 cache.

Se a DataSourceMode propriedade for definida SqlDataSourceMode.DataSet como 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, o SqlDataSourceView cria um DbCommand objeto usando o SelectCommand texto e quaisquer valores associados SelectParameters e, em seguida, executa o DbCommand no 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 de explorações de script.

Aplica-se a

Confira também