luudii34
Messages postés24Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention16 avril 2013
-
6 mars 2009 à 08:54
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDerniè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??
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 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 ?)