Problème de filtrage sur une requête sql avec plusieurs paramétre [Résolu]

- - Dernière réponse :  Damiens29 - 26 mars 2013 à 11:09
Bonjour,

j'utilise une requete paramétré dans mon dataset via la methode fillby avec plusieur LIKE qui permet de faire une recherche de plusieurs element dans un datagrid .

Lorsque je rentre un élément dans ma premiére textbox et que je fais ma recherche,tous fonctionne bien mais par contre,lorsque je rentre un autre élément dans ma seconde textbox et que ma premiére est vide, il me renvoie des résultat incohérent.

J'ai testé en utilisant la fonction COALESCE mais le probléme n'est pas résolu.

Code de ma requete paramétré dans mon dataset :

Code C# :SELECT distinct t1.Num, Client, Commentaire FROM T_Client as t1 left join t_fourn on (t1.Num =t_fourn.Num)
WHERE (Client LIKE '%' + @Client + '%' OR Client IS NULL) AND (Commentaire LIKE '%' + @Commentaire + '%' OR Commentaire IS NULL)


Code concernant ma recherche :


Code C# : this.TableAdapter.FillByRecherche(this.Dataset,client.Text, Commentaire.Text)


Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
3
Merci
C'est bon, ca fonctionne enfin !J'ai supprimé mes like et en faisant la même requête avec des COALESCE a la place de ISNULL, ma recherche a bien voulut fonctionné.

Merci en tous les cas pour votre aide.

Merci Damiens29 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Damiens29
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
0
Merci
Bonjour,

tu as testé en sql ?
A mon avis tu auras le problème aussi. Je pense qu'il faut chercher la cause du coté des valeurs nulle.

bonne journée


Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Commenter la réponse de cgandco
0
Merci
Salut,

Ben j'ai testé directement en sql et ca fonctionne très bien.C'est ca qui est le plus étrange.Et dans mon appli,je ne récupére juste que des variables dans des textbox donc ca ne doit pas être ça le souci non plus.
Commenter la réponse de Damiens29
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
Salut,

as-tu essayé avec un concaténation SQL ? genre :

string rqt = "SELECT blabla FROM trucmuch WHERE machin LIKE '%'||@param||'%'";
Commenter la réponse de cs_jopop
0
Merci
Maintenant, j'utilise cette requête ci-dessous sans LIKE :
SELECT  Client,Commentaire FROM            T_Client WHERE  (ISNULL (@Client, '""') = Client) OR   (ISNULL (@Commentaire,'""') 


Lorsque je passe par mon tableadapter et que j'execute ma requete avec par exemple,le client a nulle et que je remplis le commentaire,tous fonctionne comme il faut.Pareil pour le champ Client remplis mais par contre, lorsque je passe par mon formulaire de recherche par mes deux textbox :
   this.t_ClientTableAdapter.FillByRecherche(this.DataSet.T_Client,clientToolStripTextBox.Text,commentaireToolStripTextBox.Text)


Ma recherche fonctionne bien sur mes clients mais par contre, elle ne me raméne rien lorsque j'entre une donnée dans mes commentaire et que mon champ client est vide.

Je ne vois vraiment pas où je peux avoir fais une erreur...
Commenter la réponse de Damiens29
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
0
Merci
bonjour,

ta requete ne doit pas être plustôt comme ca ?

SELECT  Client,Commentaire FROM            T_Client WHERE  (ISNULL (@Client, '""') = Client) OR  Commentaire LIKE '%' + ISNULL (@Commentaire,'""') + '%' 



bonne journée


Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Commenter la réponse de cgandco

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.