J'ai un problème de Cast sur l'instruction ci dessous. Ca compile
correctement mais une execption est levée a l'execution.
cumul est une variable de type int
sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi bien
un entier. En plus pour en être certain
j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
cumul += (int) sqlDR.GetValue(0);
J'ai aussi essayé
cumul += sqlDR.GetSqlInt16(0);
et d'autres choses mais rien n'y fait. J'ai l'erreur suivante :
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
Zoury
Salut Grome! :O)
j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
Si ton champs (ou variable) est déjà de type int, tu n'a pas à le reconvertir. Aussi, en sql server, préviligie toujours cast() sur convert() si possible.
Le cast spécifié n'est pas valide. Est ce que quelqu'un a une idée ...
Ta valeur est-elle null ? (voir sqlDR.IsDBNull()) cumul est bien type Int32 ? le type de la première colonne sélectionnée est bien int ? (voir le SELECT de ta requête)
p'tite recommandation : au lieu de : cumul += (int) sqlDR.GetValue(0);
préfère l'emploi de : cumul += sqlDR.GetInt32(0); // qui est plus rapide
ou encore : cumul += (Int32)sqlDR("mon_champs"); // qui est plus explicite
-- Cordialement Yanick MVP pour Visual Basic
Salut Grome! :O)
j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
Si ton champs (ou variable) est déjà de type int, tu n'a pas à le
reconvertir. Aussi, en sql server, préviligie toujours cast() sur convert()
si possible.
Le cast spécifié n'est pas valide.
Est ce que quelqu'un a une idée ...
Ta valeur est-elle null ? (voir sqlDR.IsDBNull())
cumul est bien type Int32 ?
le type de la première colonne sélectionnée est bien int ? (voir le SELECT
de ta requête)
p'tite recommandation :
au lieu de :
cumul += (int) sqlDR.GetValue(0);
préfère l'emploi de :
cumul += sqlDR.GetInt32(0); // qui est plus rapide
ou encore :
cumul += (Int32)sqlDR("mon_champs"); // qui est plus explicite
j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
Si ton champs (ou variable) est déjà de type int, tu n'a pas à le reconvertir. Aussi, en sql server, préviligie toujours cast() sur convert() si possible.
Le cast spécifié n'est pas valide. Est ce que quelqu'un a une idée ...
Ta valeur est-elle null ? (voir sqlDR.IsDBNull()) cumul est bien type Int32 ? le type de la première colonne sélectionnée est bien int ? (voir le SELECT de ta requête)
p'tite recommandation : au lieu de : cumul += (int) sqlDR.GetValue(0);
préfère l'emploi de : cumul += sqlDR.GetInt32(0); // qui est plus rapide
ou encore : cumul += (Int32)sqlDR("mon_champs"); // qui est plus explicite
-- Cordialement Yanick MVP pour Visual Basic
grome
Bon je réponds ici a Zoury.
Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
En ce qui concerne mon problème de cast c'est bien un null retourné par la requête qui me posait problème. Ah ces bases de tests !!! J'étais persuadé que c'était plus compliqué que çà.
Je n'ai pas répondu plus tôt car je ne voiyais pas le mail que tu as posté (surement depuis google).
merci quand même.
grome
"grome" a écrit dans le message de news: 41dd1acd$0$7914$
Bonjour à tous.
J'ai un problème de Cast sur l'instruction ci dessous. Ca compile correctement mais une execption est levée a l'execution.
cumul est une variable de type int sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi bien un entier. En plus pour en être certain j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
cumul += (int) sqlDR.GetValue(0);
J'ai aussi essayé
cumul += sqlDR.GetSqlInt16(0);
et d'autres choses mais rien n'y fait. J'ai l'erreur suivante :
Le cast spécifié n'est pas valide.
Est ce que quelqu'un a une idée ...
Bon je réponds ici a Zoury.
Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
En ce qui concerne mon problème de cast c'est bien un null retourné par la
requête qui me posait problème. Ah ces bases de tests !!!
J'étais persuadé que c'était plus compliqué que çà.
Je n'ai pas répondu plus tôt car je ne voiyais pas le mail que tu as posté
(surement depuis google).
merci quand même.
grome
"grome" <no@spam.fr> a écrit dans le message de news:
41dd1acd$0$7914$626a14ce@news.free.fr...
Bonjour à tous.
J'ai un problème de Cast sur l'instruction ci dessous. Ca compile
correctement mais une execption est levée a l'execution.
cumul est une variable de type int
sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi
bien un entier. En plus pour en être certain
j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
cumul += (int) sqlDR.GetValue(0);
J'ai aussi essayé
cumul += sqlDR.GetSqlInt16(0);
et d'autres choses mais rien n'y fait. J'ai l'erreur suivante :
Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
En ce qui concerne mon problème de cast c'est bien un null retourné par la requête qui me posait problème. Ah ces bases de tests !!! J'étais persuadé que c'était plus compliqué que çà.
Je n'ai pas répondu plus tôt car je ne voiyais pas le mail que tu as posté (surement depuis google).
merci quand même.
grome
"grome" a écrit dans le message de news: 41dd1acd$0$7914$
Bonjour à tous.
J'ai un problème de Cast sur l'instruction ci dessous. Ca compile correctement mais une execption est levée a l'execution.
cumul est une variable de type int sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi bien un entier. En plus pour en être certain j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
cumul += (int) sqlDR.GetValue(0);
J'ai aussi essayé
cumul += sqlDR.GetSqlInt16(0);
et d'autres choses mais rien n'y fait. J'ai l'erreur suivante :
Le cast spécifié n'est pas valide.
Est ce que quelqu'un a une idée ...
Zoury
> Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
> Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
> Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
Zoury
l'autre post est partie avant que j'y colle ce lien : http://groups.google.com/groups?threadm76FCA6A.BD1FB19D%40csi.fr
-- Cordialement Yanick MVP pour Visual Basic "grome" a écrit dans le message de news:41e28b39$0$12293$
Bon je réponds ici a Zoury.
Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
En ce qui concerne mon problème de cast c'est bien un null retourné par la requête qui me posait problème. Ah ces bases de tests !!! J'étais persuadé que c'était plus compliqué que çà.
Je n'ai pas répondu plus tôt car je ne voiyais pas le mail que tu as posté (surement depuis google).
merci quand même.
grome
"grome" a écrit dans le message de news: 41dd1acd$0$7914$ > Bonjour à tous. > > J'ai un problème de Cast sur l'instruction ci dessous. Ca compile > correctement mais une execption est levée a l'execution. > > cumul est une variable de type int > sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi > bien un entier. En plus pour en être certain > j'ai ajouté dans la requête sql un convert(integer, <mon_expression>) > > cumul += (int) sqlDR.GetValue(0); > > J'ai aussi essayé > > cumul += sqlDR.GetSqlInt16(0); > > et d'autres choses mais rien n'y fait. J'ai l'erreur suivante : > > Le cast spécifié n'est pas valide. > > Est ce que quelqu'un a une idée ... > > > > > >
l'autre post est partie avant que j'y colle ce lien :
http://groups.google.com/groups?threadm76FCA6A.BD1FB19D%40csi.fr
--
Cordialement
Yanick
MVP pour Visual Basic
"grome" <no@spam.fr> a écrit dans le message de
news:41e28b39$0$12293$636a15ce@news.free.fr...
Bon je réponds ici a Zoury.
Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
En ce qui concerne mon problème de cast c'est bien un null retourné par la
requête qui me posait problème. Ah ces bases de tests !!!
J'étais persuadé que c'était plus compliqué que çà.
Je n'ai pas répondu plus tôt car je ne voiyais pas le mail que tu as posté
(surement depuis google).
merci quand même.
grome
"grome" <no@spam.fr> a écrit dans le message de news:
41dd1acd$0$7914$626a14ce@news.free.fr...
> Bonjour à tous.
>
> J'ai un problème de Cast sur l'instruction ci dessous. Ca compile
> correctement mais une execption est levée a l'execution.
>
> cumul est une variable de type int
> sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi
> bien un entier. En plus pour en être certain
> j'ai ajouté dans la requête sql un convert(integer, <mon_expression>)
>
> cumul += (int) sqlDR.GetValue(0);
>
> J'ai aussi essayé
>
> cumul += sqlDR.GetSqlInt16(0);
>
> et d'autres choses mais rien n'y fait. J'ai l'erreur suivante :
>
> Le cast spécifié n'est pas valide.
>
> Est ce que quelqu'un a une idée ...
>
>
>
>
>
>
l'autre post est partie avant que j'y colle ce lien : http://groups.google.com/groups?threadm76FCA6A.BD1FB19D%40csi.fr
-- Cordialement Yanick MVP pour Visual Basic "grome" a écrit dans le message de news:41e28b39$0$12293$
Bon je réponds ici a Zoury.
Pourquoi faut il préfèrer le CAST au CONVERT en sql server.
En ce qui concerne mon problème de cast c'est bien un null retourné par la requête qui me posait problème. Ah ces bases de tests !!! J'étais persuadé que c'était plus compliqué que çà.
Je n'ai pas répondu plus tôt car je ne voiyais pas le mail que tu as posté (surement depuis google).
merci quand même.
grome
"grome" a écrit dans le message de news: 41dd1acd$0$7914$ > Bonjour à tous. > > J'ai un problème de Cast sur l'instruction ci dessous. Ca compile > correctement mais une execption est levée a l'execution. > > cumul est une variable de type int > sqlDr est un SqlDataReader et le champ 0 vient d'une requete qui renvoi > bien un entier. En plus pour en être certain > j'ai ajouté dans la requête sql un convert(integer, <mon_expression>) > > cumul += (int) sqlDR.GetValue(0); > > J'ai aussi essayé > > cumul += sqlDR.GetSqlInt16(0); > > et d'autres choses mais rien n'y fait. J'ai l'erreur suivante : > > Le cast spécifié n'est pas valide. > > Est ce que quelqu'un a une idée ... > > > > > >