Pb de base de données avec le caractère @

[Résolu]
Signaler
Messages postés
13
Date d'inscription
dimanche 27 février 2005
Statut
Membre
Dernière intervention
9 mars 2006
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
bonjour tout le monde,

en fait
j'ai un problème dans mon application C# qui essai d'inserer une ligne à une table d'une base de données oracle 9i ayant la structure suivante : user (user_id, email).



j'ai implémenté une intérface pour l'insertion d'un nouvel utilisateur, c simple, l'instruction sql est la suivante :



string str = " insert into user (user_id, email) values (" + id_value.text + ",'" + email.value)";



(email.value contient un caractère @)



pour l'insertion ça marche, mais pour l'email le caractère
@ est transformé en : (deux points). ceci
biensur sous VS 2003, tandis que avec un editeur SQL le problème
ne se pose plus



c'est quoi le problème

5 réponses

Messages postés
13
Date d'inscription
dimanche 27 février 2005
Statut
Membre
Dernière intervention
9 mars 2006

oui, str est correct, puisque pas d'erreur oracle à l'exécution et tout marche bien, sauf que le caractère @ est transformé en :

j'ai résolu le problème d'une autre manière. j'ai utilisé une requete paramétrée, qui prend comme paramètre l'adresse email.
Messages postés
7
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
27 février 2006

Bonjour,
J'ai la même chose que toi, et mon @ n'est pas transformé !!!
Tu as deux Textbox pour ton INSERT ?
Si oui pourquoi un email.value ? et non email.text ?
Ta str : est-elle stockée dans la partie : #region Code généré par le Concepteur Windows Form ???

Rémi
Messages postés
13
Date d'inscription
dimanche 27 février 2005
Statut
Membre
Dernière intervention
9 mars 2006

en fait, c'est une erreur de frappe dans mon code c'est ecrit email.text pour récupérer l'email saisi sur ce textbox.

la variable str est une variable locale elle est exécutée comme suit :

string str = " insert into user (user_id, email) values (" + id_value.text + ",'" + email.text)";
oracleCommand cmd = new oracleCommand(str,myconnection);
cmd.executeNonQuery();

je t'informe que ma base de données est en oracle version 9i
Messages postés
7
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
27 février 2006

On parlant d'erreur de frappe :
tu veux certainement écrire :
string str = " insert into user (user_id, email) values (" + id_value.text + ",'" + email.text+"')";

Pour info @ signale un paramètre SQL server et : un paramètre Oracle.
Dis moi si ta str est correct ou si c'est autre chose ?
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Ce qui d'un seul coup te résoud ton problème ainsi qu'un splendide problème de sécurité.

/*
coq
MVP Visual C#
*/