Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme entre dotnet et SQL

8 réponses
Avatar
Christian
bonjour,
je travaille sur une appli avec sql server 2005 et VS2005, dans ma
classe j'ai une variable declarée en single, dans ma base le champ qui
doit etre remplit par ma variable est un float. Qd je lui envoie ma
variable du type 2.2 il me la transforme en 22. Savez vous d'ou vient le pb.

Si je lui passe 2,2 il me dit cast nvarchar vers float impossible.

la je bloque vraient, merci de votre aide.

--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw

8 réponses

Avatar
Patrick Philippot
Bonjour,

Un float SQL devrait être mappé sur un System.Double. Ou alors, utilisez les
types de System.Data.SqlTypes. Single correspond au type Real.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr


"Christian" <http://cerbermail.com/?5RVJmRhSQw> wrote in message
news:
bonjour,
je travaille sur une appli avec sql server 2005 et VS2005, dans ma classe
j'ai une variable declarée en single, dans ma base le champ qui doit etre
remplit par ma variable est un float. Qd je lui envoie ma variable du type
2.2 il me la transforme en 22. Savez vous d'ou vient le pb.

Si je lui passe 2,2 il me dit cast nvarchar vers float impossible.

la je bloque vraient, merci de votre aide.

--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw


Avatar
Christian
oui en fait j'ai changer mon single en double mais j'ai toujours
l'erreur. Par contre qd je passe par le sql manager et que je rentre
12,6 il le prend par contre 12.6 il me met une erreur ce qui est normal.
Mais la je voit pas pourquoi quand mon appli lui passe 12,6 il en veut
pas et me dit qu'il peut pas transformer un nvarchar en float.
--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw
Avatar
Fred
Dans : news:,
Christian disait :
oui en fait j'ai changer mon single en double mais j'ai toujours
l'erreur. Par contre qd je passe par le sql manager et que je rentre
12,6 il le prend par contre 12.6 il me met une erreur ce qui est
normal. Mais la je voit pas pourquoi quand mon appli lui passe 12,6
il en veut pas et me dit qu'il peut pas transformer un nvarchar en
float.




Bonjour,
Un bout de code ?
Vous utilisez des paramètres ?
Une concaténation plus probablement si j'en crois le message.

Comment l'appli lui «passe» 12,6 ?

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Christian
voici une explication :)


j'ai une classe avec une variable Mt as system.Double.

pour l'insérer dans ma table, je recupere cette valeur entrée dans un
textbox (ex:2,45) puis j'appelle ma classe de connection qui se charge
d'envoyer cette valeur dans ma table par le biais d'une procédure stockée.

C'est qd la procédure stockée essaie d'insérer 2,45 que sql2005 me dit
"impossible de transformer un nvarchar en float."

Mon paramètre de ma procédure stockée est bien déclaré en float ainsi
que mon champ dans ma base.

par contre si je rentre ds sql manager et que j'insère manuellement 2,45
ca marche.

est plus claire ?
--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw
Avatar
Christian
autre test.

si a la place de ma variable "Mt" j'ecris en dur "12,36" ben ca
fonctionne....
Donc apres ce test je me suis dit peut être le system.double qui
remplace ma virgule dans "12,36" par un point et ben non. j'ai bien
12,36 à la sortie apres le castage par system.double.
--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw
Avatar
Fred
Dans : news:,
Christian disait :
voici une explication :)



pour l'insérer dans ma table, je recupere cette valeur entrée dans un
textbox (ex:2,45) puis j'appelle ma classe de connection qui se charge
d'envoyer cette valeur dans ma table par le biais d'une procédure
stockée.



C'est cette partie du code qu'il faudrait montrer je pense.
Si le code ressemble à quelque chose du style :

Dim v as System.Double

cmd.Parameters.AddWithValue("nomParam", v)

Alors je ne comprends pas.

Sinon, essayez ainsi ?


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Christian
en fait je viens de trouver mon erreur qui m'a fait perdre 2 h, en fait
dans ma classe connection j'ai une fonction prenant en parametre le nom
de la procedure stockée et un tableau. Ce tableau prend le nom du
parametre et ca valeur.

du style

Montant 12,36
ID 1....

et bien je me suis rendu compte que je declarais ce tableau comme string
du coup tout ce qui passait de dans etait parsé en string. Pour resoudre
cela je le declare As Object et tout fonctionne.

Merci et désolé de vous avoir fait perdre votre temps :(

--
http://www.correzeweb.com
http://www.localetv.com
http://cerbermail.com/?5RVJmRhSQw
Avatar
Fred
dans : news:
Christian disait :

Merci et désolé de vous avoir fait perdre votre temps :(



Pas de quoi, merci pour le retour !


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT