0

假设您有一个如下所示的 SQLDataSource:

<asp:SqlDataSource ID="sqldsSample" runat="server" 
    ConnectionString="<%$ ConnectionStrings:myConnectionString %>" 
    SelectCommand="SELECT [col1], [col2] FROM [tbl] WHERE [col3] = @val) ORDER BY [col1] DESC;">
    <SelectParameters>
        <asp:Parameter DefaultValue="False" Name="val" Type="Boolean" />
        <asp:Parameter DefaultValue="" Name="val2" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

假设您已决定要在此处声明“val2”参数,并且您不想在后面的代码隐藏中添加和/或删除参数(例如,更改 SelectCommand 以进行一些额外的过滤标准)。

它会失败而没有错误 - 控件只会显示为空。

4

2 回答 2

1

即使不使用,您也必须为参数指定默认值。例如,只需输入一个空格字符即可:

<asp:Parameter DefaultValue=" " Name="val2" Type="String" />

请注意,如果您省略 DefaultValue 属性,它仍然不起作用。

于 2013-01-25T09:16:28.123 回答
0

SqlDataSource 上还有CancelSelectOnNullParameter参数 - 如果您希望任何参数为空,则需要将其设置为 false。

这不是很明显,它已经抓住了我几次!

于 2018-07-10T01:45:54.257 回答