SqlDataSource.Select(DataSourceSelectArguments) Método

Definição

Recupera dados da base de dados subjacente usando a SelectCommand string SQL e quaisquer parâmetros que estejam 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 objeto que é usado para solicitar operações sobre os dados para além da DataSourceSelectArguments recuperação básica de dados.

Devoluções

Uma IEnumerable lista de linhas de dados.

Exceções

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

Exemplos

Os exemplos seguintes mostram como chamar programaticamente o Select método e definir valores com base no resultado da consulta. O exemplo seguinte mostra o código declarativo para os controlos 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 seguinte mostra como chamar programaticamente o Select método. O SqlDataSource controlo devolve um número inteiro. O valor do inteiro é usado para definir o texto de um Label controlo e para determinar se deve ser exibido um HyperLink controlo.

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

Observações

O Select método é automaticamente chamado durante a PreRender fase do ciclo de vida da página. É chamada por controlos ligados a dados que foram ligados a um SqlDataSource controlo através da sua DataSourceID propriedade.

O Select método devolve um DataView objeto se a DataSourceMode propriedade estiver definida para o DataSet valor. O Select método devolve um IDataReader objeto se a DataSourceMode propriedade estiver definida para o DataReader valor. Fecha o IDataReader objeto quando terminares de ler os dados.

Antes de a Select operação ser realizada, o OnSelecting método é chamado para elevar o Selecting evento. Pode tratar deste evento para examinar os valores dos parâmetros e realizar qualquer processamento antes da Select operação.

Após a conclusão da Select operação, o OnSelected método é chamado para elevar o Selected evento. Pode gerir este evento para examinar quaisquer valores de retorno e códigos de erro e realizar qualquer pós-processamento.

Se a DataSourceMode propriedade estiver definida como SqlDataSourceMode.DataSet e a cache estiver ativada, o SqlDataSource objeto recupera dados e guarda os dados na cache durante a Select operação. A cache é criada, descartada ou atualizada com base no comportamento de cache especificado pela combinação das CacheDuration propriedades e.CacheExpirationPolicy

Importante

Quando está a usar usurpação de cliente em Microsoft Windows authentication, os dados são armazenados em cache quando o primeiro utilizador acede aos dados. Se outro utilizador solicitar os mesmos dados, os dados são recuperados da cache. Os dados não são recuperados através de uma nova chamada à base de dados para verificar o acesso do utilizador aos dados. Se esperar que mais do que um utilizador aceda aos dados e quiser que cada recuperação de dados seja verificada pelas configurações de segurança da base de dados, não use cache.

Se a DataSourceMode propriedade for definida como SqlDataSourceMode.DataSet e uma FilterExpression propriedade for especificada, a expressão do filtro é avaliada com quaisquer propriedades fornecidas FilterParameters e o filtro resultante é aplicado à lista de dados durante a Select operação.

O Select método delega ao Select método do SqlDataSourceView objeto associado ao SqlDataSource controlo. Para realizar uma operação de recuperação de dados, constrói SqlDataSourceView um DbCommand objeto usando o SelectCommand texto e quaisquer valores associados SelectParameters , e depois executa-o DbCommand contra a base de dados subjacente.

Importante

Os valores são inseridos nos parâmetros sem validação, o que constitui uma potencial ameaça à segurança. Use o Filtering evento para validar os valores dos parâmetros antes de executar a consulta. Para mais informações, consulte Visão Geral dos Exploits de Scripts.

Aplica-se a

Ver também