System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.

drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009 - 11 mai 2007 à 22:55
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 13 oct. 2007 à 20:27
Bonsoir!!

Voila j'ai un petit probléme, je dois rentrer une valeur decimal dans une combo, puis l'enregistrer dans une base de donnée
Le probléme quand je rentre la valeur decimal, par exemple 1.3 quand je debeud dans ma requete cette valeur change par 1,3
or SQL n'accepte  pas la les nombres a virgule.
Par contre j'ai éssayé  System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Ma valeur 1.3 a été remplacer par .
Quelqu'un a une idée? merci d'avance.

11 réponses

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
12 mai 2007 à 16:05
Salut,

Je ne suis pas sûr de bien saisir là.
Tu as une valeur décimale (stockée dans quel type ?) et tu l'enregistres en base de donnée, mais dans la requête elle apparait sous la forme "1,3" => tu n'utilises pas de requêtes paramétrées ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009
12 mai 2007 à 16:29
Bonjour!!
En fait dans mon formulaire meme si je rentre un nombre decimal par (5.7)
quand j'essais de l'enregistrer dans ma table, et je mets un point d'arret sur ma requete, dans l'enregistrement j'ai pas la valeur inserer c'est a dire 5.7, plutot 5,7 les vameurs a virgule SQL ne les prend pas en compte .
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
12 mai 2007 à 16:39
Et ta requete est batie comment ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009
12 mai 2007 à 16:50
J'utilise SQL2005
"INSERT INTO "+ table.TableName +

  "VALUES (table.Rows[0][
"StrNoSiret"] +
"','" + table.Rows[0][
"IntNoTarif"] +
"','" + (table.Rows[0][
"DecTauxDeRemiseMaxi"]) +
"','" + table.Rows[0][
"StrNomConducteurDeTravaux1"] +
"','" + table.Rows[0][
"StrTélConducteurDeTravaux1"] +
"','" + table.Rows[0][
"StrNomConducteurDeTravaux2"] +
"','" + table.Rows[0][
"StrTélConducteurDeTravaux2"] +
"','" + table.Rows[0][
"StrNomConducteurDeTravaux3"] +
"','" + table.Rows[0][
"StrTélConducteurDeTravaux3"] +
"','" + table.Rows[0][
"StrNomConducteurDeTravaux4"] +
"','" + table.Rows[0][
"StrTélConducteurDeTravaux4"] +
"','" + table.Rows[0][
"ClientPayeurID"] +
"','" + table.Rows[0][
"familleDeClientsID"] +
"','" + table.Rows[0][
"représentantID"] +
"');";

la requette n'a pas de probléme ,c'est dans mon formulaire quad je rentre un nombre a un point , dans ma requette j'obtient le mm nombre par contre le point a été remplacer par une virgule.
0

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

Posez votre question
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
12 mai 2007 à 16:56
Si, ta requête à un problème : tu injectes tes données dedans à coup de concaténation de chaine.
Déjà c'est peut maintenable, tu aurais dû utiliser String.Format, beaucoup plus lisible.
Ensuite je suppose que la colonne en question est numérique en base, donc utilises une requête paramétrée et laisse le provider se débrouiller avec le type numérique que tu lui passes en valeur du paramètre.

/*
coq
MVP Visual C#
CoqBlog
*/
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
13 mai 2007 à 02:08
roo oui elle est vilaine cette requête :p lol
et puis ce serait peut etre mieux de mettre le nom des colonnes de la table :

INSERT INTO [nomtable] ([StrNoSiret],[
IntNoTarif])
VALUES (?,?);

>(j'ai pas tout mis (fainéant))

je n'ai pas vu si c'est pour SQL Server ou Access ou autre

OleDbParameter
http://msdn2.microsoft.com/fr-fr/library/system.data.oledb.oledbparameter(VS.80).aspx

SqlParameter
http://msdn2.microsoft.com/fr-fr/library/system.data.sqlclient.sqlparameter.aspx
+
0
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009
13 mai 2007 à 09:39
Bonjour !!!
 j'ai trouvé , c'est plus simple que ça.Il fallait juste faire
'" + (table.Rows[0]["DecTauxDeRemiseMaxi"].ToString().Replace(',', '.')) + "' et ça marche nikel
Merci a plus
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
13 mai 2007 à 09:57
Ok...... Bon courage quand quelqu'un avec d'autres paramètres régionaux utilisera ton application... et surtout quand quelqu'un aura découvert le problème de sécurité.

Petite note pour ceux qui passeraient par ici plus tard, la solution "plus simple" qui vient d'être citée n'est naturellement pas à adopter : vive les requêtes paramétrées.

http://fr.wikipedia.org/wiki/Injection_SQL
http://msdn2.microsoft.com/fr-fr/library/ms161953.aspx
http://msdn2.microsoft.com/fr-fr/library/hdb58b2f(VS.80).aspx

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
13 mai 2007 à 11:28
Rhalala le bricoleur!

<hr />
-Blog-
0
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009
13 mai 2007 à 11:37
lol, en fait pur les sources on n'en a parler vendredi , se sont des sources ke j'ai trouvé sur ce site et d'autres que je bricole, finalement je les mets.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
13 oct. 2007 à 20:27
Passant ici par hasard (après une recherche), je mets un lien qui pourra être utile au suivant...
http://www.csharpfr.com/tutoriaux/UTILISATION-REQUETES-PARAMETREES-AVEC-ADO-NET_709.aspx

<hr />
-My Blog-
0