【问题标题】:How can I use a case statement with a Drop Box? Access Database如何将 case 语句与 Drop Box 一起使用?访问数据库
【发布时间】:2014-08-08 21:40:11
【问题描述】:

当值设置为空时,我有一个包含各种项目的下拉框我想使用控制参数选择多个项目来填充数据源,如下所示。 这个选择命令不起作用,谁能帮我看看我做错了什么?编辑下面的代码现在是正确的和功能.....

<asp:DropDownList ID="FilterList1" runat="server">

                    <asp:ListItem  Selected="True" Value=" ">Produce</asp:ListItem>
                            <asp:ListItem>Fruits</asp:ListItem>
                            <asp:ListItem>Vegetables</asp:ListItem>
                            <asp:ListItem>Milk</asp:ListItem>
                            <asp:ListItem>Pop</asp:ListItem>

</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
    DataFile="~/AFOLDER/db1.mdb" 
    SelectCommand="SELECT * FROM [Table1] WHERE IIF( (@Food1 ='  '), [Food] In ('Fruit','Vegetable'), (Food =@Food1) )">
    <SelectParameters>
      <asp:ControlParameter ControlID="FilterList1" Name="Food1" 
            PropertyName="SelectedValue" Type="String" />
    </SelectParameters>
</asp:AccessDataSource>

【问题讨论】:

    标签: database ms-access-2007 dropdownbox sql iif-function


    【解决方案1】:

    当您使用AccessDataSource1时,请尝试访问 SQL IIF() 语句,类似于:

    SelectCommand="SELECT * FROM [Table1] WHERE (Service =@Service1) OR IIF((@Service1 ='  '), IIF( [Service] In ('In Service','Out of Service'), True, False), False)
    

    另外,请确保您使用正确的语法 @Service1 =' '(可能是 @Service1 ='' ?)

    希望这会有所帮助。

    问候

    【讨论】:

    • @Service1 =' ' 是正确的语法。这个答案没有用,但可能是朝着正确方向迈出的一步。
    • 所以它是这样工作的。 SelectCommand="SELECT * FROM [Table1] WHERE (Service =@Service1) OR IIF( (@Service1 =' '), [Service] In ('In Service','Out of Service'), (Service =@Service1) )"&gt;
    • 我还建议将上述答案放在 where 语句的开头。我很难把它放在一个很长的 where 语句的末尾。
    • 我已经修复了上述问题,因为它应该希望它对某人有所帮助。祝你编程愉快。
    猜你喜欢
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    相关资源
    最近更新 更多