2014-07-16 38 views
0

我正在使用C#编写VS2013中的LightSwitch HTML应用程序。我有一个主屏幕,允许用户选择他们有权使用的网站。它将此网站ID传递到搜索屏幕,并且我想用一堆搜索选项填充搜索屏幕以针对资产进行搜索。Lightswitch查询/子查询/下拉选择列表

在数据库中,我使用SQL Server 3个表:

Site (Id, ShortName, LongName, Description) 
Unit (Id, Code, Description) 
SiteUnit (Id, SiteId, UnitId) 

的有效组合。

因为我传递SiteId,我要提供用户(除其他事项外)的下降有效单位的下降,他们可以从(从单元Code场)

我试图以多种方式来完成这个搜索,但到目前为止,它是无用的。

我在SiteUnit表的页面上添加了数据项(查询),参数为SiteId,并返回相应的记录。

现在我想用它来筛选Unit表来显示适当的选择。

所有适当的外键都添加了,但我无法弄清楚。

回答

0

我只对LightSwitch有一个基本的了解。您不能像SQL中那样直接使用SQL代码或执行多个表连接。但是,如果您有权访问数据库,则可以创建一个视图,然后将该视图当作表来查询。以下将创建一个视图,列出每个站点的每个单元。使用SiteID上的过滤器调用视图将为该网站提供单位。

Create View v_UnitsBySiteID as 
    SELECT Id, Code, Description 
    FROM Unit u 
    INNER JOIN SiteUnit su 
    ON u.ID = su.UnitID 

更改根据需要返回的内容。这有帮助吗?

0

您需要使用参数为您的Unit表添加另一个过滤器查询,就像您为SiteUnit表所做的一样。然后您需要将您的新参数设置为适当的UnitId。这可以通过多种方式完成。

最简单的方法是将参数绑定直接设置为SiteUnitQuery.SelectedItem.UnitId。但是如果在执行UnitQuery时需要执行其他处理,则可以在SiteUnitQuery_SelectionChanged()方法中手动设置新参数,或者通过某种类型的按钮手动设置新参数。