我有两张桌子:
carType:
==
id
CarTypeTitle
和
Items
==
id
ItemTitle
CarTypeId1
CarTypeId2
CarTypeId3
如你所见,我在CarTypeId(来自Items表)和id(CarType Table)之间建立了关系,并将CarTypeId2(来自Items表)与id(CarType表)之间的关系......等等。
我有2个下拉列表,ddl1,ddl2。 ddl1表示carTypes,ddl2表示项目。我在级联中取得了成功,并且在ddl2:
的WHERE参数中工作得很好<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>
当我选择cartype时,ddl2给我按照cartypeid1的项目。但我如何编写代码(WHERE参数),它将给我type2和3。
我有一些与同一购物车相关的商品,即:Wiper-bla与subaro和fat相关......所以我给他们一个subaro和fiat的购物车类型......
希望一切都清楚。
答案 0 :(得分: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和Items。 e.g。
ItemToCarType
=============
ItemId
CarTypeId
使用此表,您可以为每个项目包含无限数量的CarTypes。并且您将简化查询,因为您不需要分别处理每个字段(例如在此示例中使用OR
)