ASP.NET GridView参数默认值为空字符串

时间:2012-02-20 02:19:00

标签: asp.net visual-web-developer

我一直在努力解决这个问题:

我有一个包含此数据源的GridView:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:Sprava_SubjektuConnectionString1 %>"
SelectCommand="SELECT [Jméno], [E_mail], [Adresa] FROM [view1] WHERE ([Jméno] LIKE '%' + @Jméno + '%')">
            <SelectParameters>
                <asp:ControlParameter ControlID="TextBox1" Name="Jméno" PropertyName="Text" Type="String" />
            </SelectParameters>
</asp:SqlDataSource>

我的愿望是,当TextBox1为空时,我会得到输出:

SELECT [Jméno], [E_mail], [Adresa] FROM [view1] WHERE [Jméno] LIKE '%%'

但它完全相反。有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:1)

您需要的是:

SELECT
  [Jméno], [E_mail], [Adresa]
FROM
  [view1]
WHERE ([Jméno] LIKE '%' + @Jméno + '%' OR @Jméno IS NULL)

默认情况下,GridView会在将空字符串发送到数据库服务器之前将其更改为NULL。

答案 1 :(得分:1)

您可以尝试这种技术:

...WHERE ((@Jméno is null) OR (Jméno like '%' + @Jméno + '%')) 

答案 2 :(得分:1)

另一种方法,如果你的RDBMS支持ISNULL()是:

SELECT [Jméno], [E_mail], [Adresa] FROM [view1] WHERE ([Jméno] LIKE '%' + ISNULL(@Jméno, '') + '%')