2011-05-10 3 views
0

의 매개 변수 내가이 개 테이블이 : 당신이 볼 수있는, 내가 ID와 (항목 테이블에서) CarTypeId의 관계 (CarType 표)를 만들어,경우 LinqDataSource

carType: 
== 
id 
CarTypeTitle 

Items 
== 
id 
ItemTitle 
CarTypeId1 
CarTypeId2 
CarTypeId3 

및 CarTypeId2 (Items 테이블의)에서 ID (CarType 테이블) 사이의 relatshionship ... 등등.

나는 2 개의 드롭 다운리스트 ddl1, ddl2를 가지고 있습니다. carTypes의 경우 ddl1이고 항목의 경우 ddl2입니다. 내가 계단식으로 성공하고 ddl2에서 매개 변수 곳으로 잘 작동입니다 : 내가 cartype 선택하면

<asp:LinqDataSource ID="LinqDataSource4" runat="server" ContextTypeName="DataClassesDataContext" EntityTypeName="" TableName="Items" Where="CarTypeId1 == @CarTypeId1"> 
    <WhereParameters> 
     <asp:ControlParameter ControlID="ddl2" Name="CarTypeId" PropertyName="SelectedValue" Type="Int32" /> 
    </WhereParameters> 
</asp:LinqDataSource> 

ddl2이 cartypeid1 위해 따라 항목을 줘. 하지만 어떻게 타입 2와 3을 줄 코드 (WHERE 매개 변수)를 써야합니까?

저는 같은 카피 타이트와 관련된 몇 가지 항목이 있습니다. 즉, Wiper-bla는 subaro와 관련이 있고 fiat ... so 나는 그 (것)들에게 subaro와 carton의 cartypeid를 준다 ...

희망은 모두 명확하다.

답변

1

이게 당신이 찾고 있는게 있나요?

<asp:LinqDataSource ID="LinqDataSource4" runat="server" ContextTypeName="DataClassesDataContext" EntityTypeName="" TableName="Items" Where="CarTypeId1 == @CarTypeId OR CarTypeId2 == @CarTypeId OR CarTypeId3 == @CarTypeId"> 
    <WhereParameters> 
     <asp:ControlParameter ControlID="ddl2" Name="CarTypeId" PropertyName="SelectedValue" Type="Int32" /> 
    </WhereParameters> 
</asp:LinqDataSource> 

그러나 CarTypes 및 항목을 연결하기 위해 별도의 테이블을 사용하도록 데이터 모델을 업데이트하는 것이 좋습니다. 예 :

ItemToCarType 
============= 
ItemId 
CarTypeId 

이 표에는 각 항목에 대해 무제한의 CarTypes를 포함 할 수 있습니다. 그리고 모든 필드를 분리하여 처리 할 필요가 없기 때문에 쿼리를 단순화 할 수 있습니다 (이 예에서 OR 사용).

+0

OR을 사용하면 원하는 것을 얻을 수 있습니다. 나는 그 질문을 여러 번했고 아무 것도 얻지 못했고 당신의 대답은 훌륭합니다 !!! 많은 많은 감사합니다! – Oshrib

관련 문제