Search code examples
asp.net.netsql-serversqldatasourcequerystringparameter

asp:QueryStringParameter and empty query string parameter


I haveasp:GridView displaying client requests using asp:SqlDataSource. I want to limit displayed information by client:

View.aspx has to display everything, View.aspx?client=1 has to display only requests from client ID #1.

So I'm using <asp:QueryStringParameter Name="client" QueryStringField="client" /> for query "EXEC getRequests @client".

Everything works properly when some client is specified. But don't - if not.

I tested my SP using SSMS - it works properly in both cases - when parameter is specified and when it isn't (NULL passed explicitly).

What have I do?


Solution

  • SqlDataSource won't fire if any of it's parameters are null, unless you specify otherwise:

    <asp:SqlDataSource CancelSelectOnNullParameter="False" />
    

    It might also be necessary to add a null default value to your querystring parameter:

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