DropDownList选择和表结构

时间:2014-11-10 22:03:06

标签: c# asp.net sql-server

这是一个难以解释和复杂的问题。但我会尽力描述它。

我有三个表(Material,Test,Material_Test)

在材料表中,它就像

MaterialID    MaterialName
     A         Plastic
     B         Wood

在测试表中,它就像

TestID    TestClass   Temp
   1         high     40
   2         low      30
   3         Medium   35

在我的Material_test表中,

MaterialID   TestID  Min   Max 
    A          1     1.0    1.2
    A          2     1.2    2.2
    B          1     2.0    3.0

最后一张表记录了不同材料在不同测试下的最小和最大测试结果。

我在页面顶部创建了一个Dropdownlist ddl_material,用于绑定" Material"中的所有材料。表。我创建了另一个Dropdownlist ddl_test,它绑定了" Test"中的所有测试。 ddl_material下的表和文本框显示相关的测试" Temp"," Min"和" Max"结果。我想要实现的是,在我从ddl_material中选择一种材料后,ddl_test将显示所有可用的测试(请注意这里我希望所有测试不仅仅是材料测试中的测试,而不是像级联一样,例如材料A,那里在Material_Test表中只测试1和2,但我希望ddl_test仍然具有包括测试3的所有测试。然后,当我从ddl_test中选择时,如果存在与我选择的特定测试的材料相关的最小值和最大值,那么这些文本框将同时显示" Temp"来自"测试"表和" Min"和" Max"来自" Material_Test"表。如果选择的测试没有应用于材料,这意味着" Material_Test"表,然后只有Texbox用于测试" Temp"将会显示但没有" Min"和" Max"应该表明。

我尝试使用左连接来存储过程,但是下拉列表仍然无法正常工作。

任何帮助都会欣赏!!如果有任何问题我会很清楚。谢谢!!

SELECT 
   T.Temp
   M.Min
   M.Max      
   FROM 
   Test as T
   Left Join
   Material_Test as M
   On M.TestID = T.TestID
   Where M.TestID = @ID and M.MaterialID = @Material

1 个答案:

答案 0 :(得分:0)

看起来您只需要将测试下拉列表直接绑定到Test表中的记录。无需获取所选材料。在获取测试结果的查询中,如果特定测试没有结果,则可以隐藏值。