SqlDataSource.Select(DataSourceSelectArguments) Méthode

Définition

Récupère des données de la base de données sous-jacente à l'aide de la chaîne SQL SelectCommand et des paramètres qui se trouvent dans la collection 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

Paramètres

arguments
DataSourceSelectArguments

Objet DataSourceSelectArguments qui est utilisé pour demander des opérations sur les données allant au-delà de la récupération des données de base.

Retours

Liste IEnumerable de lignes de données.

Exceptions

L'objet SqlDataSource ne peut pas établir de connexion avec la source de données sous-jacente.

Exemples

Les exemples suivants montrent comment appeler par programmation la Select méthode et définir des valeurs en fonction du résultat de la requête. L’exemple suivant montre le code déclaratif pour les contrôles 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" />

L’exemple suivant montre comment appeler la Select méthode par programmation. Le SqlDataSource contrôle retourne un entier. La valeur de l’entier est utilisée pour définir le texte d’un Label contrôle et pour déterminer s’il faut afficher un HyperLink contrôle.

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

Remarques

La Select méthode est automatiquement appelée pendant la PreRender phase du cycle de vie de la page. Elle est appelée par les contrôles liés aux données qui ont été attachés à un SqlDataSource contrôle via leur DataSourceID propriété .

La Select méthode retourne un DataView objet si la DataSourceMode propriété est définie sur la DataSet valeur . La Select méthode retourne un IDataReader objet si la DataSourceMode propriété est définie sur la DataReader valeur . Fermez l’objet IDataReader lorsque vous avez terminé de lire les données.

Avant l’exécution de l’opération Select , la OnSelecting méthode est appelée pour déclencher l’événement Selecting . Vous pouvez gérer cet événement pour examiner les valeurs des paramètres et effectuer tout traitement avant l’opération Select .

Une fois l’opération Select terminée, la OnSelected méthode est appelée pour déclencher l’événement Selected . Vous pouvez gérer cet événement pour examiner les valeurs de retour et les codes d’erreur et effectuer tout post-traitement.

Si la DataSourceMode propriété est définie SqlDataSourceMode.DataSet sur et que la mise en cache est activée, l’objet SqlDataSource récupère les données de et les enregistre dans le cache pendant l’opération Select . Le cache est créé, ignoré ou actualisé en fonction du comportement de mise en cache spécifié par la combinaison des CacheDuration propriétés et CacheExpirationPolicy .

Important

Lorsque vous utilisez l’emprunt d’identité client sous l’authentification Microsoft Windows, les données sont mises en cache lorsque le premier utilisateur accède aux données. Si un autre utilisateur demande les mêmes données, les données sont récupérées du cache. Les données ne sont pas récupérées en effectuant un autre appel à la base de données pour vérifier l’accès de l’utilisateur aux données. Si vous vous attendez à ce que plusieurs utilisateurs accèdent aux données et que vous souhaitez que chaque récupération de données soit vérifiée par les configurations de sécurité de la base de données, n’utilisez pas la mise en cache.

Si la DataSourceMode propriété a la valeur SqlDataSourceMode.DataSet et qu’une FilterExpression propriété a été spécifiée, l’expression de filtre est évaluée avec toutes les propriétés fournies FilterParameters et le filtre résultant est appliqué à la liste des données pendant l’opération Select .

La Select méthode délègue à la Select méthode de l’objet SqlDataSourceView associé au SqlDataSource contrôle . Pour effectuer une opération de récupération de données, génère un DbCommand objet à l’aide SqlDataSourceView du SelectCommand texte et des valeurs associéesSelectParameters, puis exécute sur DbCommand la base de données sous-jacente.

Important

Les valeurs sont insérées dans les paramètres sans validation, ce qui constitue une menace de sécurité potentielle. Utilisez l’événement Filtering pour valider les valeurs des paramètres avant d’exécuter la requête. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

S’applique à

Voir aussi