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 de SQL que utiliza el control SqlDataSource 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 de SQL o nombre de un procedimiento almacenado que SqlDataSource utiliza para recuperar los 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 mostrarlos 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 mostrarlos 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 mostrarlos 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 método usa Select 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.
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. 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. 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'
. Sin embargo, si el proveedor se establece System.Data.Odbc en 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 Usar 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 amenaza de seguridad potencial. Use el Filtering evento para validar los valores de parámetro antes de ejecutar la consulta. Para más información, consulte Información general sobre los ataques mediante scripts.