asp: QueryStringParameter et paramètre de chaîne de requête vide
-
30-09-2019 - |
Question
Je haveasp:GridView
afficher les demandes des clients à l'aide asp:SqlDataSource
. Je veux limiter les informations affichées par le client:
View.aspx
doit tout d'affichage, View.aspx?client=1
doit afficher uniquement les demandes d'ID client # 1.
J'utilise <asp:QueryStringParameter Name="client" QueryStringField="client" />
pour "EXEC getRequests @client"
de requête.
Tout fonctionne correctement lorsque certains clients est spécifié. Mais ne sont pas -. Sinon
Je l'ai testé mon SP en utilisant SSMS - il fonctionne correctement dans les deux cas - lorsque le paramètre est spécifié et quand il n'est pas (NULL
passé explicitement)
Qu'est-ce que je peux faire?
La solution
SqlDataSource ne se déclenche pas si l'un des paramètres de celui-ci sont nuls, sauf indication contraire:
<asp:SqlDataSource CancelSelectOnNullParameter="False" />
Il pourrait également être nécessaire d'ajouter une valeur par défaut null à votre paramètre querystring:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />
Autres conseils
Vous devez définir une valeur par défaut au paramètre pour ces situations, par exemple:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>
puis dans la SP dont vous avez besoin de vérifier si le client est 0, retourner tous les clients, sinon celui spécifique.