SqlDataSource.SelectCommand Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la cadena SQL que el SqlDataSource control usa para recuperar datos de la base de datos subyacente.
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 SQL o nombre de un procedimiento almacenado que usa SqlDataSource para recuperar datos.
Ejemplos
Esta sección contiene dos ejemplos de código. En el primer ejemplo de código se muestra cómo establecer el SelectCommand texto en una consulta SQL básica para recuperar datos de una base de datos compatible con ODBC y mostrarlo en un GridView control . En el segundo ejemplo de código se muestra cómo establecer el SelectCommand texto en el nombre de un procedimiento almacenado y la SelectCommandType propiedad en el StoredProcedure valor para recuperar datos de una base de datos de Microsoft SQL Server y mostrarlo en un 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.
En el ejemplo de código siguiente se muestra cómo establecer el SelectCommand texto en una consulta SQL básica para recuperar datos de una base de datos compatible con ODBC y mostrarlo en un 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 establecer el SelectCommand texto en el nombre de un procedimiento almacenado y la SelectCommandType propiedad en el StoredProcedure valor para recuperar datos de una base de datos de SQL Server y mostrarlo en un 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.
<!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 el Select método usa para recuperar datos de una base de datos de SQL Server. 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.
Dado que diferentes productos de base de datos usan diferentes variedades de SQL, la sintaxis de la cadena SQL depende del proveedor de ADO.NET actual que se usa, que se identifica mediante la ProviderName propiedad . Si la cadena SQL es una consulta o comando con parámetros, el marcador de posición del parámetro también depende del proveedor de ADO.NET que se use. Por ejemplo, si el proveedor es , System.Data.SqlClientque es el proveedor predeterminado para la SqlDataSource clase , el marcador de posición del parámetro es '@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 '?'. Para obtener más información sobre las consultas y comandos SQL con parámetros, vea Uso de parámetros con el control SqlDataSource.
La SelectCommand propiedad puede ser una cadena SQL o el nombre de un procedimiento almacenado, si el origen de datos admite procedimientos almacenados.
La SelectCommand propiedad delega a la SelectCommand propiedad del SqlDataSourceView objeto asociado al SqlDataSource control .
Importante
Para fines de seguridad, la SelectCommand propiedad no se almacena es el estado de vista. Dado que es posible descodificar el contenido del estado de vista en el cliente, almacenar información confidencial sobre la estructura de la base de datos en estado de vista podría dar lugar a una vulnerabilidad de divulgación de información.
Importante
Los valores se insertan en parámetros sin validación, lo que es una posible amenaza de seguridad. Use el Filtering evento para validar los valores de parámetro antes de ejecutar la consulta. Para obtener más información, consulte Información general sobre vulnerabilidades de seguridad de script.