Requête à paramètres facultatifs

sev622 Messages postés 62 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 12 septembre 2005 - 10 août 2005 à 17:59
sev622 Messages postés 62 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 12 septembre 2005 - 11 août 2005 à 08:53
bonjour,
j'ai un petit problème pour une requête
Je voudrais faire en sorte que si une variable de session existe, sa valeur sert comme paramètre dans la clause where, sinon, il ne faut pas en tenir compte.


Dim cmdoutilselect As New SqlClient.SqlCommand("select id, forme, commentaire from outil where forme=@nforme ", connection)



If Not Session("nformerch")
Is Nothing Then



cmdoutilselect.Parameters.Add("@nforme", Session("nformerch"))



Else



cmdoutilselect.Parameters.Add("@nforme", "*")



End If

Bien sûr, where forme=* n'existe pas !
Qu'est-ce qu'il faut mettre à la place ? (<> NULL ou != NULL ne marche pas non plus)
J'ai bien pensé à faire plusieurs requêtes mais c'est une dizaine de paramètres qu'elle contient en réalité soit beaucoup trop de requêtes à faire puisque l'existence des variables de session est vraiment aléatoire.

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 août 2005 à 18:31
pourquoi pas DBNull ? ou alors "''" (ca donne ca avec des espaces : " ' ' " ) en fait tout depend de ce que tu veux que retourne ta requete quand il n'y a aucun paramètre.

C'est donc surement ta requete qui te pose problème, va donc voir du coté de www.sqlfr.com

<hr> Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
sev622 Messages postés 62 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 12 septembre 2005
11 août 2005 à 08:39
j'ai trouvé, il suffisait de mettre where forme is not null !
0
sev622 Messages postés 62 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 12 septembre 2005
11 août 2005 à 08:53
mais il faudrait pouvoir mettre dans la requête where forme @nforme
et @nforme vaut soit = session("nformerch")
soit is not null
mais bien sûr, cette syntaxe n'est pas acceptée !
0
Rejoignez-nous