Partager via


LinqDataSource.Where Propriété

Définition

Obtient ou définit une valeur qui spécifie les conditions qui doivent être remplies pour qu'un enregistrement soit inclus dans les données récupérées.

public:
 property System::String ^ Where { System::String ^ get(); void set(System::String ^ value); };
public string Where { get; set; }
member this.Where : string with get, set
Public Property Where As String

Valeur de propriété

String

Chaîne utilisée pour créer la clause Where.

Implémente

Exemples

L’exemple suivant montre comment filtrer les données retournées à partir d’une requête en fonction d’une condition statique.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price > 50"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price > 50"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

L’exemple suivant montre comment filtrer les données en fonction d’une valeur fournie par l’utilisateur au moment de l’exécution. Dans cet exemple, un DropDownList contrôle et un GridView contrôle sont affichés sur la page. Lorsque l’utilisateur sélectionne l’une des valeurs du DropDownList contrôle, le LinqDataSource contrôle sélectionne dans la Products table uniquement les lignes dont les valeurs sont UserPrice égales à la valeur sélectionnée. Le GridView contrôle affiche ensuite les données filtrées.

<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="0"></asp:ListItem>
    <asp:ListItem Value="25"></asp:ListItem>
    <asp:ListItem Value="100"></asp:ListItem>
    <asp:ListItem Value="400"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price>@UserPrice"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="UserPrice" 
            DefaultValue="0" 
            ControlID="DropDownList1" 
            Type="Int32" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="0"></asp:ListItem>
    <asp:ListItem Value="25"></asp:ListItem>
    <asp:ListItem Value="100"></asp:ListItem>
    <asp:ListItem Value="400"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Where="Price > @UserPrice"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="UserPrice" 
            DefaultValue="0" 
            ControlID="DropDownList1" 
            Type="Int32" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Remarques

Vous utilisez la Where propriété pour spécifier les conditions pour que l’enregistrement soit retourné à partir d’une requête. La syntaxe de la Where propriété est identique à la syntaxe d’une clause LINQ Where en C#.

Vous spécifiez une expression qui génère une valeur booléenne et si l’expression prend la valeur true d’une ligne donnée, la ligne est incluse dans le jeu de résultats. Les expressions sont composées de noms de colonnes, d’opérateurs de comparaison et de valeurs à comparer, comme illustré dans l’exemple suivant :

<asp:LinqDataSource ... Where="Price > 50"...>  

Pour spécifier plusieurs expressions liées par des opérateurs ou logiquesAND, vous utilisez && comme opérateur AND logique et || comme opérateur OR logique, comme indiqué dans l’exemple OR suivant :

<asp:LinqDataSource ... Where="Price > 50 && Price < 100"...>  
<asp:LinqDataSource ... Where="Price <= 50 || Price >= 100"...>  

Si vous souhaitez tester une propriété par rapport à une valeur de chaîne littérale, la valeur de chaîne littérale doit être placée entre guillemets doubles. Pour ce faire, placez la valeur de la Where clause entre guillemets simples, comme illustré dans l’exemple suivant :

<asp:LinqDataSource ... Where='Category = "Sports"' ... >  

Pour effectuer un test par rapport à une valeur de chaîne littérale dans le code, utilisez des caractères d’échappement appropriés à la langue que vous utilisez pour insérer des guillemets doubles, comme illustré dans l’exemple suivant :

LinqDataSource1.Where = "Category = ""Sports"""  
LinqDataSource1.Where = "Category = \"Sports\"";  

Si vous souhaitez tester si une chaîne est supérieure ou inférieure à une autre chaîne, vous devez utiliser des méthodes de la String classe au lieu d’utiliser < ou > d’opérateurs entre le nom de colonne et la valeur de chaîne. Les exemples suivants montrent comment sélectionner des lignes qui ont des valeurs de catégorie inférieures, inférieures ou égales à, supérieures ou supérieures ou égales à « Sports » :

<asp:LinqDataSource ... Where='Category.CompareTo("Sports") < 0' ... >  
<asp:LinqDataSource ... Where='Category.CompareTo("Sports") <= 0' ... >  
<asp:LinqDataSource ... Where='Category.CompareTo("Sports") > 0' ... >  
<asp:LinqDataSource ... Where='Category.CompareTo("Sports") >= 0' ... >  

Vous pouvez également utiliser d’autres méthodes de la String classe, telles que StartsWith, EndsWithet Contains. Pour plus d’informations sur la façon de comparer des chaînes, consultez Comparaison de chaînes. Pour plus d’informations sur la syntaxe de clause Where, consultez Opérateurs C# et clause where.

En plus du filtrage basé sur des valeurs statiques que vous définissez lorsque vous créez la page Web, vous pouvez filtrer en fonction des valeurs dynamiques évaluées au moment de l’exécution. Dans ce cas, vous incluez un paramètre nommé dans la Where propriété qui agit comme un espace réservé pour la valeur. Vous ajoutez ensuite un paramètre qui a le nom correspondant à la WhereParameters collection.

Vous pouvez également définir la AutoGenerateWhereClause propriété true sur et définir les paramètres de la WhereParameters collection. Lorsque la AutoGenerateWhereClause propriété est true, vous n’avez pas besoin d’inclure les paramètres nommés dans la Where propriété. Au lieu de cela, le LinqDataSource contrôle génère automatiquement la clause Where à partir des paramètres de la WhereParameters propriété.

Pour plus d’informations sur le filtrage des données, consultez procédure pas à pas : sélection et filtrage d’un sous-ensemble de données avec les contrôles LinqDataSource et GridView.

S’applique à