Вопрос

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

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

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

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

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

Что я делаю?

Это было полезно?

Решение

SqldataSource не будет стрелять, если кто-либо из этого параметров NULL, если вы не указываете иначе:

<asp:SqlDataSource CancelSelectOnNullParameter="False" />

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

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

Другие советы

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

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

А затем в SP вам нужен проверка, если клиент 0, вернуть всех клиентов, в противном случае конкретный.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top