我需要创建一个SQL语句,可以根据选择的选项来进行调整。我有2个从数据库填充的下拉列表。基于多重下拉选择的sql语句
这里是我的ASP
<td class="theSearchTableData">
<asp:UpdatePanel runat="server" ID="up_team" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddl_team"></asp:DropDownList><%--AutoPostBack="true" OnSelectedIndexChanged="ddl_team_SelectedIndexChanged"--%>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td class="theSearchTableData">
<asp:DropDownList runat="server" ID="ddl_owner"></asp:DropDownList>
</td>
<td class="theSearchTableData">
<asp:DropDownList runat="server" ID="ddl_actionowner" ></asp:DropDownList>
</td>
C#代码
string Owner_ActionOwner_Combo = "";
string ownerClause = "";
string ActionownerClause = "";
if (ddl_owner.SelectedIndex > 0)
{
ownerClause = " log_number in (SELECT DISTINCT log_number FROM Log_Data WHERE log_owner = @logOwner) AND ";
}
if (ddl_actionowner.SelectedIndex > 0)
{
ActionownerClause = " log_number in (SELECT DISTINCT log_number FROM Log_Data WHERE log_owner <> @actionOwner and current_action_owner = @actionOwner ) AND ";
}
else if (ddl_actionowner.SelectedIndex >0 & ddl_owner.SelectedIndex > 0)
{
Owner_ActionOwner_Combo = "log_number in (SELECT DISTINCT log_number FROM Log_Data WHERE current_action_owner = @actionOwner and log_owner [email protected]) AND";
}
string completeWhereClause = ActionownerClause + Owner_ActionOwner_Combo + ownerClause;
的 '@' 值已被参数化。
log_owner通常是action_owner,但是有一段时间log_owner与action_owner不同。这就是为什么我需要调整搜索条件。 如果用户想知道他们通过日志所有者搜索的日志所有者,并且与操作所有者相同。问题是当他们通过两者进行搜索时。
我已将此输入到我的数据库中并获取正确的数字。对于log_owner有32个,如果只action_owner有3个和组合应该有24
谢谢您的时间
这并不在''ActionownerClause' log_owner <> @act似乎有必要ionOwner' – JamieD77
你能详细说明你的问题吗? – user449689
@ JamieD77我正在获取具有操作所有者但不是日志所有者的日志。这两个可以是相同的,但也可以在短时间内分配给其他人 –