2013-02-17 1 views
0

확인란 매개 변수 목록을 컨트롤 매개 변수로 사용하는 쿼리를 사용하여 데이터베이스에서 데이터 행을 검색하려고합니다. 문제는 여러 쿼리가 읽을 것이다 그래야 확인란 목록을 사용하여 SQL 선택 쿼리에 여러 매개 변수를 추가하는 방법은 무엇입니까?

Illustration

<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal" DataSourceID="SqlDataSource1" DataTextField="Fruit" DataValueField="Fruit" ></asp:CheckBoxList> 
<asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:f-StopConnectionString %>' SelectCommand="SELECT [Fruit] FROM [Table_1]"></asp:SqlDataSource> 

<br /> 

<asp:Button ID="Button1" runat="server" Text="Select" OnClick="Button1_Click" /> 

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource4"> 
    <Columns> 
     <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID"></asp:BoundField> 
     <asp:BoundField DataField="Fruit" HeaderText="Fruit" SortExpression="Fruit"></asp:BoundField> 
    </Columns> 
</asp:GridView> 

<asp:SqlDataSource runat="server" ID="SqlDataSource4" ConnectionString='<%$ ConnectionStrings:f-StopConnectionString %>' 
    SelectCommand="SELECT * FROM [Table_1] WHERE ([Fruit] LIKE '%' + @Fruit + '%')"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="CheckBoxList1" PropertyName="SelectedValue" Name="Fruit" Type="String"></asp:ControlParameter> 
    </SelectParameters> 
</asp:SqlDataSource> 

여러 선택 사항을 전달할 수있는 방법이 있나요 ... 여기와 같이 하나 개의 값을 반환 checkboxlist에 값을 선택 :

(WHERE [Fruit] LIKE '%'Apples'%') OR (WHERE [Fruit] LIKE '%'Oranges'%') 

아무런 도움이 필요하지 않을 경우 대단히 감사하겠습니다.

답변

0

필자가 알고있는 한, 코드를 제공하지 않았으므로 linq (또는 엔티티 프레임 워크)를 사용하여 데이터베이스를 쿼리하려고합니다.

그러면 사용자 선택에 따라 람다 식을 만들어 쿼리에 전달해야합니다. 시작 여기

참조 람다 표현식 나무 : http://www.codeproject.com/Articles/17575/Lambda-Expressions-and-Expression-Trees-An-Introdu

이것은 또한 도움이 될 수 있습니다 Can I use custom delegate method in Where method of Entity Framework?

그냥 SQL SELECT 명령 문자열을 전달하려면, 다음 절은 사용자에 따라 사용자 정의를 구축해야 선택.