Значение по умолчанию параметра ASP.NET GridView для пустой строки - PullRequest
0 голосов
/ 20 февраля 2012

Я боролся с этим:

У меня есть 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 ]

1 голос
/ 20 февраля 2012

Вы можете попробовать эту технику:

...WHERE ((@Jméno is null) OR (Jméno like '%' + @Jméno + '%')) 
1 голос
/ 20 февраля 2012

Другой способ, если ваша СУБД поддерживает ISNULL ():

SELECT [Jméno], [E_mail], [Adresa] FROM [view1] WHERE ([Jméno] LIKE '%' + ISNULL(@Jméno, '') + '%')
1 голос
/ 20 февраля 2012

Вам нужно:

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

GridView по умолчанию изменяет пустую строку на NULL перед отправкой на сервер БД.

...