这是一个难以解释和复杂的问题。但我会尽力描述它。
我有三个表(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
答案 0 :(得分:0)
看起来您只需要将测试下拉列表直接绑定到Test表中的记录。无需获取所选材料。在获取测试结果的查询中,如果特定测试没有结果,则可以隐藏值。