Domanda

I haveasp:GridView visualizzare le richieste dei client utilizzando asp:SqlDataSource. Voglio limitare le informazioni visualizzate dal cliente:

View.aspx ha da mostrare tutto, View.aspx?client=1 deve visualizzare solo le richieste da client ID # 1.

Così sto usando <asp:QueryStringParameter Name="client" QueryStringField="client" /> per la query "EXEC getRequests @client".

Tutto funziona correttamente quando viene specificata qualche cliente. Ma non -. Se non

Ho provato il mio SP utilizzando SSMS - funziona correttamente in entrambi i casi - quando è specificato il parametro e quando non lo è (NULL passato esplicitamente)

.

Che cosa ho fare?

È stato utile?

Soluzione

SqlDataSource non sarà il fuoco se qualcuno dei suoi parametri sono nulli, se non diversamente specificato:

<asp:SqlDataSource CancelSelectOnNullParameter="False" />

Potrebbe anche essere necessario aggiungere un valore predefinito null per il vostro parametro querystring:

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

Altri suggerimenti

È necessario definire un valore predefinito per il parametro per quelle situazioni, per esempio:

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

e poi nella SP si deve verificare se il cliente è 0, restituire tutti i clienti, altrimenti quello specifico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top