asp:QueryStringParameter и пустой параметр строки запроса

Я имеюasp:GridView отображение клиента запрашивает использование asp:SqlDataSource. Я хочу ограничить отображенную информацию клиентом:

View.aspx должен отобразить все, View.aspx?client=1 должен отобразить только запросы из клиентского идентификатора № 1.

Таким образом, я использую <asp:QueryStringParameter Name="client" QueryStringField="client" /> для запроса "EXEC getRequests @client".

Все работает правильно, когда некоторый клиент указан. Но не делайте - если нет.

Я протестировал свой SP с помощью SSMS - он работает правильно в обоих случаях - когда параметр указан и когда это не (NULL переданный явно).

Что сделало, я делаю?

8
задан abatishchev 25 January 2017 в 19:23
поделиться

2 ответа

SqlDataSource не сработает, если какой-либо из его параметров равен нулю, если вы не укажете иное:

<asp:SqlDataSource CancelSelectOnNullParameter="False" />

Также может потребоваться добавить нулевое значение по умолчанию в параметр строки запроса:

<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />
16
ответ дан 5 December 2019 в 09:24
поделиться

Вам необходимо определить значение по умолчанию для параметра для этих ситуаций, например:

<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>

, а затем в SP вам нужно проверить, является ли клиент 0, вернуть всех клиентов, в противном случае - конкретного.

2
ответ дан 5 December 2019 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: