Problème de conversion

Résolu
luudii34 Messages postés 24 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 16 avril 2013 - 6 mars 2009 à 08:54
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 - 6 mars 2009 à 14:54
Bonjour!!

J'ai une erreur : Opérateur incorrect pour le type de données. L'opérateur est boolean AND, le type est char.
sur la ligne :
SqlDataReader dr = cmd.ExecuteReader();

Je ne comprend pas trop d'où elle vient.
Voici mon code:

SqlCommand cmd;

//Ma requete
strSQL = "select AUTMAT, DTENTA, NMCLI, LBADR1, LBADR2, LBVILL, CDPOST, NOTEL1 from DOSSIP INNER JOIN CLIENP ON DOSSIP.CDTITU=CLIENP.CDCLI where DOSSIP.TYPDOS='CAM' and AUTMAT like '%' & @Immatriculation & '%'";


//Exécuter la requete
cmd = new SqlCommand(strSQL, cn);

//Création et déclaration des paramètres
cmd.Parameters.Add(new SqlParameter("@Immatriculation", SqlDbType.Char,15));



//Attribution des valeurs aux paramètres
cmd.Parameters["@Immatriculation"].Value = textBox4.Text;

cmd.CommandText = strSQL;
SqlDataReader dr = cmd.ExecuteReader();


Dans ma base de données le type de l'immatriculation "AUTMAT" est char de 15.
J'ai donc essayé de convertir le texte de ma textbox en char mais ca ne marche pas, j'ai une erreur comme quoi un char doit avoir un seul caractère, normal...
Comment puis je résoudre mon problème??

4 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 mars 2009 à 10:48
Hello,

C'est bien un problème d'opérateur de concaténation, sauf erreur, essaie avec :
'%' + @Immatriculation + '%'

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 mars 2009 à 09:20
Salut
C'est peut être les opérateurs de concaténation qui ne serais pas les bon (test avec || comme opérateur) ???
Si non j'avais déjà rencontré une erreur avec des requêtes avec paramètre. Les paramètres n'étais pas remplacé par la valeur. J'avais corrigé sa en remplacent le nom des paramètres par des ? (sans le @) et j'insérais les données par index (mais ce n'étais pas avec une SqlCommand je crois)

Si non active les traces (je ne sait pas le faire sur SQL serveur par contre dzl, tu à quel version ?)

 Amicalement <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-pa
0
luudii34 Messages postés 24 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 16 avril 2013 1
6 mars 2009 à 11:48
Merci beaucoup pour vos réponses!
J'ai essayé avec ta proposition SharpMao et tout marche!
MERCI
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 mars 2009 à 14:54
Hello,

Content d'avoir pu t'aider, mais n'oublie pas de valider la réponse, ça peut servir à d'autres.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
Rejoignez-nous