gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007
-
27 mars 2006 à 18:35
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 2007
-
28 mars 2006 à 13:22
Bonjour,
J'aimerais faire une requete SQL avec un WHERE conditionel. Pour cela il faut une condition IF dans la requete.
Je voudrais faire un truc du genre :
SELECT *
FROM table
IF table.id ==1
BEGIN
WHERE id == 1
END
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 28 mars 2006 à 09:59
Bonjour,
Mon problème c'est que je connais pas la syntaxe pour une base de données sql server 2005 express et que sur internet je trouve rien. L'exemple que j'ai donné est la syntaxe que je pensais être juste mais apparement c'est pas le cas.
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 28 mars 2006 à 11:58
Alors je vais essayer d'être plus précis en expliquant le tout.
Je fais un site en ASP.net 2.0. J'ai une gridview et des dropdownlist qu'on va dire associé à cette gridview permettant de faire des recherches.
Prenont la première dropdownlist qui permet de faire une recherche par rapport à l'ID d'une affaire. Le premier élément de la dropdownlist est un élément que j'ai rentré àla main dont le texte est "toute" et la valeur -1.
Donc dans la requete de ma gridview, il me faut pouvoir faire une requete SQL qui contient une clause where si la valeur selectionner de la dropdownlist est différent de -1 et ne pas faire apparaitre la clause where si la valeur est égale à à -1.
La requete est donc de cette forme :
SELECT *
FROM Affaire
IF @Search != -1
BEGIN
WHERE Affaire.Id = @Search
END
où @Search est un paramètre venant d'ASPet correspondant à la valeur de l'element selectionner dans la dropdownlist.
Voilà j'espere avoir été clair
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 28 mars 2006 à 12:09
Très clair !
Fais donc ca en programmation :
requete = "SELECT * FROM Affaire "
if (dropdownlist.value>-1)
requete requete & " WHERE Affaire.Id " & dropdownlist.value
end if
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 28 mars 2006 à 12:15
oui je sais que je peux faire ça comme ça mais j'aurais voulu intégrer ça directement dans le SQL pour des questions de performances et surtout ça permets de pas surcharger mon code c #.
Si tu me dis qu'il n'ya pas d'autres solutions, je ferais comme ça mais j'aimerais néanmoins savoir comment faire pour mettre du if dans ma requete SQL.
gstrit
Messages postés78Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention15 mars 2007 28 mars 2006 à 12:57
ah oui mais non .... :s
en fait ce qui m'arrangerai c'est de pourvoir faire une condition sur le WHERE uniquement et non sur la requete entiere.
J'ai essayer mais ça marche pas :(
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 28 mars 2006 à 13:01
Ah ben oui, mais la, c'est pas possible :o)
A mon avis tu te debrouilles mal. L'important c'est de le faire coté programme quand meme. Je vois pas vraiment la difficulté par rapport a ce que tu fais maintenant, non ?
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 28 mars 2006 à 13:11
Tu sais faire une procedure stockée ?
Dans ce cas, tu utilies la procedure stockée a la place de la requete dans ton programme, et la procedure stockée tu la crees dans la base.
Sans ca, va sur le forum C# et demande leur ca doit pas etre sorcier :)