다음을 통해 공유


LinqDataSource.Where 속성

정의

레코드가 검색되는 데이터에 포함되기 위해 충족해야 하는 조건을 지정하는 값을 가져오거나 설정합니다.

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

속성 값

String

Where 절을 만드는 데 사용되는 문자열입니다.

구현

예제

다음 예제에서는 정적 조건에 따라 쿼리에서 반환된 데이터를 필터링하는 방법을 보여줍니다.

<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>

다음 예제에서는 런타임에 사용자가 제공한 값에 따라 데이터를 필터링하는 방법을 보여 있습니다. 이 예제 DropDownList 에서는 컨트롤과 컨트롤이 GridView 페이지에 표시됩니다. 사용자가 컨트롤의 값 DropDownList 중 하나를 선택하면 컨트롤은 LinqDataSource 테이블에서 선택한 값과 같은 값이 있는 UserPrice 행만 선택합니다Products. 그러면 컨트롤이 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>
<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>

설명

이 속성을 사용하여 Where 쿼리에서 반환할 레코드의 조건을 지정합니다. 속성의 구문 Where 은 C#의 LINQ Where 절 구문과 동일합니다.

부울 값을 생성하는 식을 지정하고 식이 지정된 행에 true 대해 계산되는 경우 행이 결과 집합에 포함됩니다. 식은 다음 예제와 같이 비교할 열 이름, 비교 연산자 및 값으로 구성됩니다.

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

논리 AND 또는 OR 연산자로 연결된 여러 식을 지정하려면 다음 예제와 같이 논리 AND 연산자 및 || 논리 OR 연산자로 사용합니다&&.

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

리터럴 문자열 값에 대해 속성을 테스트하려면 리터럴 문자열 값을 큰따옴표로 묶어야 합니다. 태그에서 이 작업을 수행하려면 다음 예제와 같이 절 값을 작은따옴표로 묶 Where 습니다.

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

코드에서 리터럴 문자열 값에 대해 테스트하려면 다음 예제와 같이 큰따옴표를 삽입하기 위해 사용 중인 언어에 적합한 이스케이프 문자를 사용합니다.

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

문자열이 다른 문자열보다 크거나 작은지 테스트하려면 열 이름과 문자열 값 사이에 연산자를 사용하는 < > 대신 클래스의 String 메서드를 사용해야 합니다. 다음 예제에서는 "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' ... >  

클래스의 String 다른 메서드(예: StartsWith, EndsWithContains)를 사용할 수도 있습니다. 문자열을 비교하는 방법에 대한 자세한 내용은 문자열 비교를 참조하세요. Where 절 구문에 대한 자세한 내용은 C# 연산자where 절을 참조하세요.

웹 페이지를 만들 때 정의하는 정적 값을 기반으로 필터링하는 것 외에도 런타임에 평가되는 동적 값을 기준으로 필터링할 수 있습니다. 이 경우 값의 자리 표시자 역할을 하는 명명된 매개 변수 Where 를 속성에 포함합니다. 그런 다음 일치하는 이름을 가진 매개 변수를 컬렉션에 추가합니다 WhereParameters .

또는 속성을 설정 AutoGenerateWhereClausetrue 고 컬렉션에서 매개 변수를 정의할 WhereParameters 수 있습니다. 속성인 AutoGenerateWhereClause 경우 true속성에 명명된 매개 변수 Where 를 포함할 필요가 없습니다. 대신 컨트롤은 속성의 LinqDataSource 매개 변수 WhereParameters 에서 Where 절을 자동으로 생성합니다.

데이터를 필터링하는 방법에 대한 자세한 내용은 연습: LinqDataSource 및 GridView 컨트롤을 사용하여 데이터의 하위 집합 선택 및 필터링을 참조하세요.

적용 대상