SqlDataSource.SelectCommand Propiedad

Definición

Obtiene o establece la cadena de SQL que utiliza el control SqlDataSource para recuperar datos de la base de datos subyacente.Gets or sets the SQL string that the SqlDataSource control uses to retrieve data from the underlying database.

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 propiedad

Cadena de SQL o nombre de un procedimiento almacenado que SqlDataSource utiliza para recuperar los datos.An SQL string or the name of a stored procedure that the SqlDataSource uses to retrieve data.

Ejemplos

Esta sección contiene dos ejemplos de código.This section contains two code examples. En el primer ejemplo de código se muestra cómo SelectCommand establecer el texto en una consulta SQL básica para recuperar datos de una base de datos compatible con ODBC y GridView mostrarlos en un control.The first code example demonstrates how to set the SelectCommand text to a basic SQL query to retrieve data from an ODBC-compliant database and display it in a GridView control. En el segundo ejemplo de código se muestra cómo SelectCommand establecer el texto en el nombre de un procedimiento almacenado SelectCommandType y la propiedad StoredProcedure en el valor para recuperar datos de una base de datos de Microsoft SQL Server DropDownList y mostrarlos en un control.The second code example demonstrates how to set the SelectCommand text to the name of a stored procedure and the SelectCommandType property to the StoredProcedure value to retrieve data from a Microsoft SQL Server database and display it in a DropDownList control.

En ambos ejemplos, no es necesario llamar explícitamente al Select método porque los controles enlazados a datos que están asociados al control de origen de datos a través de la DataSourceID propiedad llamarán automáticamente al Select método durante la PreRender fase.In both examples, there is no need to explicitly call the Select method because the data-bound controls that are attached to the data source control through the DataSourceID property will automatically call the Select method during the PreRender phase.

En el ejemplo de código siguiente se muestra cómo SelectCommand establecer el texto en una consulta SQL básica para recuperar datos de una base de datos compatible con ODBC y GridView mostrarlos en un control.The following code example demonstrates how to set the SelectCommand text to a basic SQL query to retrieve data from an ODBC-compliant database and display it in a GridView control.

<!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>

En el ejemplo de código siguiente se muestra cómo SelectCommand establecer el texto en el nombre de un procedimiento almacenado SelectCommandType y la propiedad StoredProcedure en el valor para recuperar datos de una base de datos de SQL Server DropDownList y mostrarlos en un control.The following code example demonstrates how to set the SelectCommand text to the name of a stored procedure and the SelectCommandType property to the StoredProcedure value to retrieve data from a SQL Server database and display it in a DropDownList control. La SelectCommand propiedad puede ser una consulta SQL o el nombre de un procedimiento almacenado, si el origen de datos admite procedimientos almacenados.The SelectCommand property can be an SQL query or the name of a stored procedure, if the data source supports stored procedures.

<!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>

Comentarios

La SelectCommand propiedad representa una consulta SQL o el nombre de un procedimiento almacenado y lo utiliza el Select método para recuperar datos de una base de datos de SQL Server.The SelectCommand property represents an SQL query or the name of a stored procedure, and is used by the Select method to retrieve data from a SQL Server database. Si usa un asterisco (*) en el comando Seleccionar para seleccionar todas las columnas y, si usa la generación automática de código para realizar operaciones de actualización o eliminación, asegúrese de que ninguna columna tenga espacios en sus nombres.If you use an asterisk (*) in the Select command to select all columns, and if you use automatic code generation to perform update or delete operations, make sure that no columns have spaces in their names.

Como productos de base de datos diferentes usan variedades diferentes de SQL, la sintaxis de la cadena de SQL depende del proveedor de ADO.NET actual que se está usando, identificado por la propiedad ProviderName.Because different database products use different varieties of SQL, the syntax of the SQL string depends on the current ADO.NET provider being used, which is identified by the ProviderName property. Si la cadena de SQL es un comando o consulta parametrizado, el marcador de posición del parámetro también depende del proveedor de ADO.NET que se está usando.If the SQL string is a parameterized query or command, the placeholder of the parameter also depends on the ADO.NET provider being used. Por ejemplo, si el proveedor es System.Data.SqlClient, que es el proveedor predeterminado para la SqlDataSource clase, el marcador de posición del parámetro es '@parameterName'.For example, if the provider is the System.Data.SqlClient, which is the default provider for the SqlDataSource class, the placeholder of the parameter is '@parameterName'. Sin embargo, si el proveedor está establecido en System.Data.Odbc o System.Data.OleDb, el marcador de posición del parámetro '?'es.However, if the provider is set to the System.Data.Odbc or System.Data.OleDb, the placeholder of the parameter is '?'. Para obtener más información sobre los comandos y las consultas SQL con parámetros, vea usar parámetros con el control SqlDataSource.For more information about parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

La SelectCommand propiedad puede ser una cadena SQL o el nombre de un procedimiento almacenado, si el origen de datos admite procedimientos almacenados.The SelectCommand property can be an SQL string or the name of a stored procedure, if the data source supports stored procedures.

La SelectCommand propiedad delega en la SelectCommand propiedad del SqlDataSourceView objeto que está asociado SqlDataSource al control.The SelectCommand property delegates to the SelectCommand property of the SqlDataSourceView object that is associated with the SqlDataSource control.

Importante

Por motivos de seguridad, SelectCommand la propiedad no se almacena en el estado de vista.For security purposes, the SelectCommand property is not stored is view state. Dado que es posible descodificar el contenido del estado de vista en el cliente, el almacenamiento de información confidencial sobre la estructura de la base de datos en el estado de vista podría dar lugar a una vulnerabilidad de divulgación de información.Because it is possible to decode the contents of view state on the client, storing sensitive information about the database structure in view state could result in an information disclosure vulnerability.

Importante

Los valores se insertan en parámetros sin validación, lo que es una posible amenaza de seguridad.Values are inserted into parameters without validation, which is a potential security threat. Utilice el Filtering evento para validar los valores de los parámetros antes de ejecutar la consulta.Use the Filtering event to validate parameter values before executing the query. Para más información, consulte Información general sobre los ataques mediante scripts.For more information, see Script Exploits Overview.

Se aplica a

Consulte también: