SqlDataSource.SelectCommand Propriedade

Definição

Obtém ou define a string SQL que o SqlDataSource controlo usa para recuperar dados da base de dados subjacente.

public:
 property System::String ^ SelectCommand { System::String ^ get(); void set(System::String ^ value); };
public string SelectCommand { get; set; }
member this.SelectCommand : string with get, set
Public Property SelectCommand As String

Valor de Propriedade

Uma string SQL ou o nome de um procedimento armazenado que o SqlDataSource utilizador utiliza para recuperar dados.

Exemplos

Esta seção contém dois exemplos de código. O primeiro exemplo de código demonstra como definir o SelectCommand texto para uma consulta SQL básica para recuperar dados de uma base de dados compatível com ODBC e exibi-los num GridView controlo. O segundo exemplo de código demonstra como definir o texto SelectCommand para o nome de um procedimento armazenado e a propriedade SelectCommandType para o valor StoredProcedure para recuperar dados de um base de dados do Microsoft SQL Server e exibi-los num controlo DropDownList.

Em ambos os exemplos, não há necessidade de chamar explicitamente o Select método porque os controlos data-bound que estão ligados ao controlo de fonte de dados através da DataSourceID propriedade chamam automaticamente o Select método durante a PreRender fase.

O exemplo de código seguinte demonstra como definir o SelectCommand texto para uma consulta SQL básica para recuperar dados de uma base de dados compatível com ODBC e exibi-los num GridView controlo.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <!-- This example uses a Northwind database that is hosted by an ODBC-compliant
         database. To run this sample, create an ODBC DSN to any database that hosts
         the Northwind database, including Microsoft SQL Server or Microsoft Access,
         change the name of the DSN in the ConnectionString, and view the page.
    -->

    <form id="form1" runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AllowSorting="True"
          DataSourceID="SqlDataSource1">
      </asp:GridView>

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <!-- This example uses a Northwind database that is hosted by an ODBC-compliant
         database. To run this sample, create an ODBC DSN to any database that hosts
         the Northwind database, including Microsoft SQL Server or Microsoft Access,
         change the name of the DSN in the ConnectionString, and view the page.
    -->
    <form id="form1" runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AllowSorting="True"
          DataSourceID="SqlDataSource1">
      </asp:GridView>

    </form>
  </body>
</html>

O exemplo de código seguinte demonstra como definir o texto SelectCommand para o nome de um procedimento armazenado e a propriedade SelectCommandType para o valor StoredProcedure para recuperar dados de uma base de dados SQL Server e exibi-los num controlo DropDownList. A SelectCommand propriedade pode ser uma consulta SQL ou o nome de um procedimento armazenado, se a fonte de dados suportar procedimentos armazenados.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="LastName"
                DataSourceID="SqlDataSource1" />

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommandType="StoredProcedure"                
                SelectCommand="sp_lastnames">
            </asp:SqlDataSource>

            <!--
                The sp_lastnames stored procedure is
                CREATE PROCEDURE sp_lastnames AS
                   SELECT LastName FROM Employees
                GO
            -->

        </form>
    </body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="LastName"
                DataSourceID="SqlDataSource1" />

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommandType = "StoredProcedure"
                SelectCommand="sp_lastnames">
            </asp:SqlDataSource>

            <!--
                The sp_lastnames stored procedure is
                CREATE PROCEDURE sp_lastnames AS
                   SELECT LastName FROM Employees
                GO
            -->

        </form>
    </body>
</html>

Observações

A propriedade SelectCommand representa uma consulta SQL ou o nome de um procedimento armazenado, e é usada pelo método Select para recuperar dados de uma base de dados SQL Server. Se usar um asterisco (*) no comando Select para selecionar todas as colunas, e se usar geração automática de código para realizar operações de atualização ou eliminação, certifique-se de que nenhuma coluna tem espaços nos seus nomes.

Como diferentes produtos de bases de dados usam diferentes variedades de SQL, a sintaxe da string SQL depende do fornecedor atual .NET ADO que está a ser utilizado, que é identificado pela propriedade ProviderName. Se a string SQL for uma consulta ou comando parametrizado, o marcador de posição do parâmetro também depende do fornecedor ADO.NET que está a ser utilizado. Por exemplo, se o fornecedor for o System.Data.SqlClient, que é o fornecedor padrão para a SqlDataSource classe, o marcador de posição do parâmetro é '@parameterName'. No entanto, se o fornecedor estiver definido como ou System.Data.OdbcSystem.Data.OleDb, o marcador de posição do parâmetro é '?'. Para mais informações sobre consultas e comandos SQL parametrizados, consulte Utilização de Parâmetros com o Controlo SqlDataSource.

A SelectCommand propriedade pode ser uma string SQL ou o nome de um procedimento armazenado, se a fonte de dados suportar procedimentos armazenados.

A SelectCommand propriedade delega à SelectCommand propriedade do SqlDataSourceView objeto associada ao SqlDataSource controlo.

Importante

Por razões de segurança, a SelectCommand propriedade não é armazenada no estado de visualização. Como é possível decodificar o conteúdo do estado da vista no cliente, armazenar informação sensível sobre a estrutura da base de dados no estado da vista pode resultar numa vulnerabilidade à divulgação de informação.

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