Compartir a través de


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.

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.

Devoluciones

Lista IEnumerable de filas de datos.

Excepciones

El objeto SqlDataSource no puede establecer una conexión con el origen de datos subyacente.

Ejemplos

En los ejemplos siguientes se muestra cómo llamar mediante programación al Select método y establecer valores basados en el resultado de la consulta. En el ejemplo siguiente se muestra el código declarativo para los controles Web.

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 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] > 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 Select al método mediante programación. El SqlDataSource control devuelve un entero. El valor del entero se usa para establecer el texto de un Label control y para determinar si se va a mostrar un 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

Se Select llama automáticamente al método durante la PreRender fase del ciclo de vida de la página. Se llama mediante controles enlazados a datos que se han adjuntado a un SqlDataSource control a través de su DataSourceID propiedad .

El Select método devuelve un DataView objeto si la DataSourceMode propiedad se establece en el DataSet valor . El Select método devuelve un IDataReader objeto si la DataSourceMode propiedad se establece en el DataReader valor . Cierre el IDataReader objeto cuando haya terminado de leer los datos.

Antes de realizar la Select operación, OnSelecting se llama al método para generar el Selecting evento. Puede controlar este evento para examinar los valores de los parámetros y realizar cualquier procesamiento antes de la Select operación.

Una vez completada la Select operación, OnSelected se llama al método para generar el Selected evento. Puede controlar este evento para examinar los valores devueltos y los códigos de error y realizar cualquier procesamiento posterior.

Si la DataSourceMode propiedad está establecida SqlDataSourceMode.DataSet en 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. La memoria caché se crea, descarta o actualiza en función del comportamiento de almacenamiento en caché especificado por la combinación de las CacheDuration propiedades y CacheExpirationPolicy .

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 accede a los datos. Si otro usuario solicita los mismos datos, los datos se recuperan de la memoria caché. Los datos no se recuperan realizando otra llamada a la base de datos para comprobar el acceso del usuario a los datos. Si espera que más de un usuario acceda a los datos y desea que las configuraciones de seguridad de la base de datos comprueben cada recuperación de datos, no use el almacenamiento en caché.

Si la DataSourceMode propiedad se establece SqlDataSourceMode.DataSet en y se ha especificado una FilterExpression 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.

El Select método delega al Select método del SqlDataSourceView objeto asociado al SqlDataSource control . Para realizar una operación de recuperación de datos, SqlDataSourceView compila un DbCommand objeto mediante el SelectCommand texto y los valores asociados SelectParameters y, a continuación, ejecuta en DbCommand la base de datos subyacente.

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.

Se aplica a

Consulte también