LinqDataSource.Where 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
레코드가 검색되는 데이터에 포함되기 위해 충족해야 하는 조건을 지정하는 값을 가져오거나 설정합니다.
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
속성 값
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, EndsWith및 Contains)를 사용할 수도 있습니다. 문자열을 비교하는 방법에 대한 자세한 내용은 문자열 비교를 참조하세요. Where 절 구문에 대한 자세한 내용은 C# 연산자 및 where 절을 참조하세요.
웹 페이지를 만들 때 정의하는 정적 값을 기반으로 필터링하는 것 외에도 런타임에 평가되는 동적 값을 기준으로 필터링할 수 있습니다. 이 경우 값의 자리 표시자 역할을 하는 명명된 매개 변수 Where 를 속성에 포함합니다. 그런 다음 일치하는 이름을 가진 매개 변수를 컬렉션에 추가합니다 WhereParameters .
또는 속성을 설정 AutoGenerateWhereClause 하 true
고 컬렉션에서 매개 변수를 정의할 WhereParameters 수 있습니다. 속성인 AutoGenerateWhereClause 경우 true
속성에 명명된 매개 변수 Where 를 포함할 필요가 없습니다. 대신 컨트롤은 속성의 LinqDataSource 매개 변수 WhereParameters 에서 Where 절을 자동으로 생성합니다.
데이터를 필터링하는 방법에 대한 자세한 내용은 연습: LinqDataSource 및 GridView 컨트롤을 사용하여 데이터의 하위 집합 선택 및 필터링을 참조하세요.