none
SQLDATASOURCE控件 如何在 where 条件中使用 IN 运算符? RRS feed

  • 问题

  • SQLDATASOURCE控件  如何在 where 条件中使用 IN 运算符?

    <asp:SqlDataSource ID="sqldatasource销售单号" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString_tianlan %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionString_tianlan.ProviderName %>" 
    
            SelectCommand="SELECT 内部单号, 销售时间, 实收金额, 销售总金额, 支付方式, 确认日期, 现金, 银行卡款 FROM 销售单号视图 where 销售时间&gt;=? and 销售时间&lt;(TTOD(?)+1) and 支付方式 in('现金','银行卡款')" 
            onselected="sqldatasource销售单号_Selected">
            <SelectParameters>
                <asp:ControlParameter ControlID="TextBox_StartDate" Name="起始日期" 
                    PropertyName="Text" Type="DateTime" />
                <asp:ControlParameter ControlID="TextBox_EndDate" Name="结束日期" 
                    PropertyName="Text" Type="DateTime" />
            </SelectParameters>
        </asp:SqlDataSource>

    为何in('现金')能有效查询,而 in('现金','银行卡款') 却无效?

    如果通过IN运算符自动选择ListBox控件里选中的值来作为筛选?

    2015年3月14日 18:01

答案

  • SQLDATASOURCE控件  如何在 where 条件中使用 IN 运算符?

    <asp:SqlDataSource ID="sqldatasource销售单号" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString_tianlan %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionString_tianlan.ProviderName %>" 
    
            SelectCommand="SELECT 内部单号, 销售时间, 实收金额, 销售总金额, 支付方式, 确认日期, 现金, 银行卡款 FROM 销售单号视图 where 销售时间&gt;=? and 销售时间&lt;(TTOD(?)+1) and 支付方式 in('现金','银行卡款')" 
            onselected="sqldatasource销售单号_Selected">
            <SelectParameters>
                <asp:ControlParameter ControlID="TextBox_StartDate" Name="起始日期" 
                    PropertyName="Text" Type="DateTime" />
                <asp:ControlParameter ControlID="TextBox_EndDate" Name="结束日期" 
                    PropertyName="Text" Type="DateTime" />
            </SelectParameters>
        </asp:SqlDataSource>

    为何in('现金')能有效查询,而 in('现金','银行卡款') 却无效?

    如果通过IN运算符自动选择ListBox控件里选中的值来作为筛选?


    2015年3月17日 3:16

全部回复

  • SQLDATASOURCE控件  如何在 where 条件中使用 IN 运算符?

    <asp:SqlDataSource ID="sqldatasource销售单号" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString_tianlan %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionString_tianlan.ProviderName %>" 
    
            SelectCommand="SELECT 内部单号, 销售时间, 实收金额, 销售总金额, 支付方式, 确认日期, 现金, 银行卡款 FROM 销售单号视图 where 销售时间&gt;=? and 销售时间&lt;(TTOD(?)+1) and 支付方式 in('现金','银行卡款')" 
            onselected="sqldatasource销售单号_Selected">
            <SelectParameters>
                <asp:ControlParameter ControlID="TextBox_StartDate" Name="起始日期" 
                    PropertyName="Text" Type="DateTime" />
                <asp:ControlParameter ControlID="TextBox_EndDate" Name="结束日期" 
                    PropertyName="Text" Type="DateTime" />
            </SelectParameters>
        </asp:SqlDataSource>

    为何in('现金')能有效查询,而 in('现金','银行卡款') 却无效?

    如果通过IN运算符自动选择ListBox控件里选中的值来作为筛选?


    2015年3月17日 3:16
  • SQLDATASOURCE控件  如何在 where 条件中使用 IN 运算符?

    <asp:SqlDataSource ID="sqldatasource销售单号" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString_tianlan %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionString_tianlan.ProviderName %>" 
    
            SelectCommand="SELECT 内部单号, 销售时间, 实收金额, 销售总金额, 支付方式, 确认日期, 现金, 银行卡款 FROM 销售单号视图 where 销售时间&gt;=? and 销售时间&lt;(TTOD(?)+1) and 支付方式 in('现金','银行卡款')" 
            onselected="sqldatasource销售单号_Selected">
            <SelectParameters>
                <asp:ControlParameter ControlID="TextBox_StartDate" Name="起始日期" 
                    PropertyName="Text" Type="DateTime" />
                <asp:ControlParameter ControlID="TextBox_EndDate" Name="结束日期" 
                    PropertyName="Text" Type="DateTime" />
            </SelectParameters>
        </asp:SqlDataSource>

    为何in('现金')能有效查询,而 in('现金','银行卡款') 却无效?

    如果通过IN运算符自动选择ListBox控件里选中的值来作为筛选?


    2015年3月17日 3:16
  • SQLDATASOURCE控件  如何在 where 条件中使用 IN 运算符?

    <asp:SqlDataSource ID="sqldatasource销售单号" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString_tianlan %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionString_tianlan.ProviderName %>" 
    
            SelectCommand="SELECT 内部单号, 销售时间, 实收金额, 销售总金额, 支付方式, 确认日期, 现金, 银行卡款 FROM 销售单号视图 where 销售时间&gt;=? and 销售时间&lt;(TTOD(?)+1) and 支付方式 in('现金','银行卡款')" 
            onselected="sqldatasource销售单号_Selected">
            <SelectParameters>
                <asp:ControlParameter ControlID="TextBox_StartDate" Name="起始日期" 
                    PropertyName="Text" Type="DateTime" />
                <asp:ControlParameter ControlID="TextBox_EndDate" Name="结束日期" 
                    PropertyName="Text" Type="DateTime" />
            </SelectParameters>
        </asp:SqlDataSource>

    为何in('现金')能有效查询,而 in('现金','银行卡款') 却无效?

    如果通过IN运算符自动选择ListBox控件里选中的值来作为筛选?



    2015年3月17日 3:17
  • 您好,

    您不能使用In中的多重字段,可以使用Exist 来代替

    这一行为违反了标准并且是特定于SQL Server的

    请参考该链接:

    http://www.searchdatabase.com.cn/showcontent_76634.htm

    2015年3月17日 9:11