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

Résolu
Damiens29 - 21 mars 2013 à 10:49
 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

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.
3
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
22 mars 2013 à 14:39
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.
0
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.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mars 2013 à 10:53
Salut,

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

string rqt = "SELECT blabla FROM trucmuch WHERE machin LIKE '%'||@param||'%'";
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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...
0
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
25 mars 2013 à 15:17
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.
0
Rejoignez-nous