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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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:OQZWmKvkGHA.1640@TK2MSFTNGP02.phx.gbl...
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.
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.
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
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
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
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
Dans : news:ebyTg0vkGHA.3588@TK2MSFTNGP02.phx.gbl,
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.
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
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
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
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
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
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
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
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
Dans : news:OeSOlCwkGHA.2272@TK2MSFTNGP05.phx.gbl,
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 :
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
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 :(
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 :(
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 :(