Compartilhar via


SqlDataSource.SelectCommand Propriedade

Definição

Obtém ou define a cadeia de caracteres SQL que o controle SqlDataSource usa para recuperar dados do banco 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 da propriedade

Uma cadeia de caracteres SQL ou o nome de um procedimento armazenado que o SqlDataSource usa 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 um banco de dados compatível com ODBC e exibi-lo em um GridView controle . O segundo exemplo de código demonstra como definir o SelectCommand texto como o nome de um procedimento armazenado e a SelectCommandType propriedade para o StoredProcedure valor para recuperar dados de um banco de dados do Microsoft SQL Server e exibi-lo em um DropDownList controle.

Em ambos os exemplos, não é necessário chamar explicitamente o Select método porque os controles associados a dados anexados ao controle da fonte de dados por meio da DataSourceID propriedade chamarão automaticamente o Select método durante a PreRender fase.

O exemplo de código a seguir demonstra como definir o SelectCommand texto para uma consulta SQL básica para recuperar dados de um banco de dados compatível com ODBC e exibi-lo em um GridView controle .

<!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 a seguir demonstra como definir o SelectCommand texto como o nome de um procedimento armazenado e a SelectCommandType propriedade para o StoredProcedure valor para recuperar dados de um banco de dados do SQL Server e exibi-lo em um DropDownList controle . A SelectCommand propriedade pode ser uma consulta SQL ou o nome de um procedimento armazenado, se a fonte de dados der suporte a 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>

Comentários

A SelectCommand propriedade representa uma consulta SQL ou o nome de um procedimento armazenado e é usada pelo Select método para recuperar dados de um banco de dados do SQL Server. Se você usar um asterisco (*) no comando Selecionar para selecionar todas as colunas e se usar a geração automática de código para executar operações de atualização ou exclusão, verifique se nenhuma coluna tem espaços em seus nomes.

Porque os produtos diferentes de base de dados usam diferentes variedades SQL, a sintaxe da cadeia de caracteres SQL depende do provedor atual do ADO.NET que está sendo usado, que é identificado pela propriedade de ProviderName . Se a cadeia de caracteres SQL é uma consulta ou comando parametrizado, o espaço reservado de parâmetro também depende do provedor ADO.NET sendo usado. Por exemplo, se o provedor for o System.Data.SqlClient, que é o provedor padrão para a SqlDataSource classe , o espaço reservado do parâmetro será '@parameterName'. No entanto, se o provedor estiver definido como ou System.Data.OdbcSystem.Data.OleDb, o espaço reservado do parâmetro será '?'. Para obter mais informações sobre consultas e comandos SQL parametrizados, consulte Usando parâmetros com o controle SqlDataSource.

A SelectCommand propriedade pode ser uma cadeia de caracteres SQL ou o nome de um procedimento armazenado, se a fonte de dados der suporte a procedimentos armazenados.

A SelectCommand propriedade delega à SelectCommand propriedade do SqlDataSourceView objeto associado ao SqlDataSource controle .

Importante

Para fins de segurança, a SelectCommand propriedade não é armazenada é o estado de exibição. Como é possível decodificar o conteúdo do estado de exibição no cliente, armazenar informações confidenciais sobre a estrutura do banco de dados no estado de exibição pode resultar em uma vulnerabilidade de divulgação de informações.

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