LinqDataSource.Where Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, welche Bedingungen erfüllt sein müssen, damit ein Datensatz in die abgerufenen Daten einbezogen werden soll.
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
Eigenschaftswert
Eine Zeichenfolge, die zum Erstellen der Where-Klausel verwendet wird.
Implementiert
Beispiele
Das folgende Beispiel zeigt, wie die aus einer Abfrage zurückgegebenen Daten basierend auf einer statischen Bedingung gefiltert werden.
<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>
Das folgende Beispiel zeigt, wie die Daten basierend auf einem Wert gefiltert werden, der vom Benutzer zur Laufzeit bereitgestellt wird. In diesem Beispiel werden ein DropDownList Steuerelement und ein GridView Steuerelement auf der Seite angezeigt. Wenn der Benutzer einen der Werte im DropDownList Steuerelement auswählt, wählt das LinqDataSource Steuerelement aus der Tabelle nur Zeilen ausUserPrice, die Products Werte aufweisen, die dem ausgewählten Wert entsprechen. Das GridView Steuerelement zeigt dann die gefilterten Daten an.
<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>
Hinweise
Mit der Where Eigenschaft geben Sie die Bedingungen für den Datensatz an, der von einer Abfrage zurückgegeben werden soll. Die Syntax für die Where Eigenschaft ist identisch mit der Syntax für eine LINQ Where-Klausel in C#.
Sie geben einen Ausdruck an, der zu einem booleschen Wert führt, und wenn der Ausdruck für eine bestimmte Zeile ausgewertet true wird, wird die Zeile im Resultset enthalten. Ausdrücke bestehen aus Spaltennamen, Vergleichsoperatoren und Werten, mit denen verglichen werden soll, wie im folgenden Beispiel gezeigt:
<asp:LinqDataSource ... Where="Price > 50"...>
Um mehrere Ausdrücke anzugeben, die durch logische AND Oder OR Operatoren verknüpft sind, verwenden && Sie als logischeN AND-Operator und || als logischer OR-Operator, wie im folgenden Beispiel gezeigt:
<asp:LinqDataSource ... Where="Price > 50 && Price < 100"...>
<asp:LinqDataSource ... Where="Price <= 50 || Price >= 100"...>
Wenn Sie eine Eigenschaft mit einem Literalzeichenfolgenwert testen möchten, muss der Literalzeichenfolgenwert in doppelte Anführungszeichen eingeschlossen werden. Um dies im Markup zu tun, schließen Sie den Where Klauselwert in einfache Anführungszeichen ein, wie im folgenden Beispiel gezeigt:
<asp:LinqDataSource ... Where='Category = "Sports"' ... >
Um einen Literalzeichenfolgenwert im Code zu testen, verwenden Sie Escapezeichen, die für die von Ihnen verwendete Sprache geeignet sind, um doppelte Anführungszeichen einzufügen, wie im folgenden Beispiel gezeigt:
LinqDataSource1.Where = "Category = ""Sports"""
LinqDataSource1.Where = "Category = \"Sports\"";
Wenn Sie testen möchten, ob eine Zeichenfolge größer oder kleiner als eine andere Zeichenfolge ist, müssen Sie Methoden der String Klasse anstelle von Operatoren <> zwischen dem Spaltennamen und dem Zeichenfolgenwert verwenden. In den folgenden Beispielen wird gezeigt, wie Zeilen mit Kategoriewerten ausgewählt werden, die kleiner als, kleiner oder gleich, größer als oder größer als oder gleich "Sport" sind:
<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' ... >
Sie können auch andere Methoden der String Klasse verwenden, z StartsWith. B. , , EndsWithund Contains. Weitere Informationen zum Vergleichen von Zeichenfolgen finden Sie unter "Vergleichen von Zeichenfolgen". Weitere Informationen zur Syntax von Where-Klauseln finden Sie unter C#-Operatoren und where-Klauseln.
Zusätzlich zum Filtern basierend auf statischen Werten, die Sie beim Erstellen der Webseite definieren, können Sie basierend auf dynamischen Werten filtern, die zur Laufzeit ausgewertet werden. In diesem Fall fügen Sie einen benannten Parameter in die Eigenschaft ein, der Where als Platzhalter für den Wert fungiert. Anschließend fügen Sie einen Parameter mit dem übereinstimmenden Namen zur WhereParameters Auflistung hinzu.
Alternativ können Sie die AutoGenerateWhereClause Eigenschaft auf true die Parameter in der WhereParameters Auflistung festlegen und definieren. Wenn die AutoGenerateWhereClause Eigenschaft lautet true, müssen Sie die benannten Parameter nicht in die Where Eigenschaft einschließen. Stattdessen generiert das LinqDataSource Steuerelement automatisch die Where-Klausel aus den Parametern in der WhereParameters Eigenschaft.
Weitere Informationen zum Filtern von Daten finden Sie unter Walkthrough: Auswählen und Filtern einer Teilmenge von Daten mit den LinqDataSource- und GridView-Steuerelementen.