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

Signaler
-
 Damiens29 -
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

6 réponses

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.
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
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.
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.
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

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

string rqt = "SELECT blabla FROM trucmuch WHERE machin LIKE '%'||@param||'%'";
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...
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
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.