Requête pour voir si un champ commence par un paramètre [Résolu]

Signaler
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012
-
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012
-
Bonjour,

Je développe une application windows connecté a une DB sous sql server 2005 (c'est pour un cabinet de dentiste) et j'aurai voulu savoir ce que je dois faire pour vérifier si un champ commence par les lettres tapées dans un textbox.

J'ai essayé avec la clause:          where nom like '%@paramètre'     //fonctionne pas

voici un extrait de mon code:

//Création de la commande
            SqlCommand com = new SqlCommand();
            com.Connection = con;
            com.CommandText = "select PAT_NOM,PAT_PRN,PAT_TEL from PAT where PAT_NOM like '@%PAT_NOM'";
//Création du paramètre
            SqlParameter param = new SqlParameter("@PAT_NOM", SqlDbType.VarChar);
            com.Parameters.Add(param);
            com.Parameters["@PAT_NOM"].Value = nom;  //associe au paramètre la valeur du textBox reçu dans la fonction

Si je mets: where nom = @paramètre    et que je tape un nom qui est en DB ça fonctionne

MErci de votre aide

4 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
90
Ah oui, j'ai repris comme base l'exemple donné dans le post, mais qui était en fait faux aussi dans le fond et pas que la forme : le % n'a rien à faire devant si tu veux les personnes dont le nom qui commence par la saisie et non pas qui finis...
Bref : WHERE NOM LIKE @paramètre+'%'

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
90
Salut,

WHERE nom LIKE [mailto:'%'+@paramètre '%'+@paramètre] (ou [mailto:N'%'+@paramètre N'%'+@paramètre] suivant le type)

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012

merci de ton aide

Mais j'ai testé ta solution: WHERE NOM LIKE [mailto:'%'+@paramètre '%'+@paramètre]
ça fonctionne quand je mets un champ vide, là il me retourne toutes les données contenues en DB mais quand je mets la première lettre d'un nom contenu en DB, il ne me retourne rien.

Pourrais tu m'aider

merci
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012

merci à toi