SqlDataSource.Select(DataSourceSelectArguments) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.