SqlDataSource.Select(DataSourceSelectArguments) Método

Definición

Recupera los datos de la base de datos subyacente utilizando la cadena SQL SelectCommand y cualquier parámetro que esté en la colección SelectParameters.Retrieves data from the underlying database by using the SelectCommand SQL string and any parameters that are in the SelectParameters collection.

public:
 System::Collections::IEnumerable ^ Select(System::Web::UI::DataSourceSelectArguments ^ arguments);
public System.Collections.IEnumerable Select (System.Web.UI.DataSourceSelectArguments arguments);
member this.Select : System.Web.UI.DataSourceSelectArguments -> System.Collections.IEnumerable
Public Function Select (arguments As DataSourceSelectArguments) As IEnumerable

Parámetros

arguments
DataSourceSelectArguments

Objeto DataSourceSelectArguments que se utiliza para solicitar operaciones con los datos, a parte de la recuperación básica de datos.A DataSourceSelectArguments object that is used to request operations on the data beyond basic data retrieval.

Devoluciones

IEnumerable

Lista IEnumerable de filas de datos.An IEnumerable list of data rows.

Excepciones

El objeto SqlDataSource no puede establecer una conexión con el origen de datos subyacente.The SqlDataSource object cannot establish a connection with the underlying data source.

Ejemplos

En los siguientes ejemplos se muestra cómo llamar al método mediante programación Select y establecer valores basados en el resultado de la consulta.The following examples show how to programmatically call the Select method and set values based on the result of the query. En el ejemplo siguiente se muestra el código declarativo de los controles Web.The following example shows the declarative code for the Web controls.

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] &gt; 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
    ID="Button1" 
    Text="Check Reorder Status" 
    runat="server" 
    onclick="Button1_Click" />
<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] &gt; 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
   ID="Button1" 
   Text="Check Reorder Status" 
   runat="server" 
   onclick="Button1_Click" />

En el ejemplo siguiente se muestra cómo llamar al método mediante programación Select .The following example shows how to programmatically call the Select method. El SqlDataSource control devuelve un entero.The SqlDataSource control returns an integer. El valor del entero se utiliza para establecer el texto de un Label control y determinar si se debe mostrar un HyperLink control.The value of the integer is used to set the text of a Label control and to determine whether to display a HyperLink control.

protected void CheckReorderStatus()
{
    DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    int reorderedProducts = (int)dv.Table.Rows[0][0];
    if (reorderedProducts > 0)
    {
        Label1.Text = "Number of products on reorder: " + reorderedProducts;
    }
    else
    {
        Label1.Text = "No products on reorder.";
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    CheckReorderStatus();
}
Protected Sub CheckReorderStatus()
    Dim dv As DataView
    Dim reorderedProducts As Integer

    dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
    reorderedProducts = CType(dv.Table.Rows(0)(0), Integer)
    If (reorderedProducts > 0) Then
        Label1.Text = "Number of products on reorder: " & reorderedProducts
    Else
        Label1.Text = "No products on reorder."
    End If
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    CheckReorderStatus()
End Sub

Comentarios

El Select método se llama automáticamente durante la PreRender fase del ciclo de vida de la página.The Select method is automatically called during the PreRender phase of the page life cycle. Lo llaman los controles enlazados a datos que se han asociado a un SqlDataSource control a través de su DataSourceID propiedad.It is called by data-bound controls that have been attached to a SqlDataSource control through their DataSourceID property.

El Select método devuelve un DataView objeto si la DataSourceMode propiedad está establecida en el DataSet valor.The Select method returns a DataView object if the DataSourceMode property is set to the DataSet value. El Select método devuelve un IDataReader objeto si la DataSourceMode propiedad está establecida en el DataReader valor.The Select method returns a IDataReader object if the DataSourceMode property is set to the DataReader value. Cierre el IDataReader objeto cuando haya terminado de leer los datos.Close the IDataReader object when you have finished reading the data.

Antes de Select realizar la operación, OnSelecting se llama al método para generar el Selecting evento.Before the Select operation is performed, the OnSelecting method is called to raise the Selecting event. Puede controlar este evento para examinar los valores de los parámetros y realizar cualquier procesamiento antes de la Select operación.You can handle this event to examine the values of the parameters and to perform any processing before the Select operation.

Una vez Select finalizada la operación, OnSelected se llama al método para generar el Selected evento.After the Select operation completes, the OnSelected method is called to raise the Selected event. Puede controlar este evento para examinar los valores devueltos y los códigos de error, así como para realizar cualquier procesamiento posterior.You can handle this event to examine any return values and error codes and to perform any post-processing.

Si la DataSourceMode propiedad se establece en SqlDataSourceMode.DataSet y el almacenamiento en caché está habilitado, el SqlDataSource objeto recupera datos de y guarda los datos en la memoria caché durante la Select operación.If the DataSourceMode property is set to SqlDataSourceMode.DataSet and caching is enabled, the SqlDataSource object retrieves data from and saves data to the cache during the Select operation. La memoria caché se crea, se descarta o se actualiza en función del comportamiento de almacenamiento en caché especificado por la combinación de las CacheDuration propiedades y CacheExpirationPolicy .The cache is created, discarded, or refreshed based on the caching behavior that is specified by the combination of the CacheDuration and CacheExpirationPolicy properties.

Importante

Cuando se usa la suplantación de cliente en la autenticación de Microsoft Windows, los datos se almacenan en caché cuando el primer usuario obtiene acceso a los datos.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Si otro usuario solicita los mismos datos, los datos se recuperan de la memoria caché.If another user requests the same data, the data is retrieved from the cache. Los datos no se recuperan realizando otra llamada a la base de datos para comprobar el acceso del usuario a los datos.The data is not retrieved by making another call to the database to verify the user's access to the data. Si espera que más de un usuario tenga acceso a los datos y desea que cada recuperación de datos se compruebe mediante las configuraciones de seguridad para la base de datos, no utilice el almacenamiento en caché.If you expect more than one user to access the data, and you want each retrieval of data to be verified by the security configurations for the database, do not use caching.

Si la DataSourceMode propiedad se establece en SqlDataSourceMode.DataSet y se ha FilterExpression especificado una propiedad, la expresión de filtro se evalúa con las propiedades proporcionadas FilterParameters y el filtro resultante se aplica a la lista de datos durante la Select operación.If the DataSourceMode property is set to SqlDataSourceMode.DataSet and a FilterExpression property has been specified, the filter expression is evaluated with any supplied FilterParameters properties and the resulting filter is applied to the list of data during the Select operation.

El Select método delega en el Select método del SqlDataSourceView objeto que está asociado al SqlDataSource control.The Select method delegates to the Select method of the SqlDataSourceView object that is associated with the SqlDataSource control. Para realizar una operación de recuperación de datos, SqlDataSourceView genera un DbCommand objeto utilizando el SelectCommand texto y los SelectParameters valores asociados y, a continuación, ejecuta DbCommand en la base de datos subyacente.To perform a data retrieval operation, the SqlDataSourceView builds a DbCommand object by using the SelectCommand text and any associated SelectParameters values, and then executes the DbCommand against the underlying database.

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