Je cree un DataReader qui contient une collonne de type SqlDecimal qui
peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de
type double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value)
PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]);
Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd.
J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull
mais si la valeur dans la dr (DataReader) est nulle une exception de
type InvalidCast est levee.
Merci bien.
--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/
1/ ça sert à rien d'initialiser la variable à la déclaration dans ce code là
Etant donne que dans le if il n'y a pas de "else" l'initialisation me parait importante.
2/ le test et l'assignation peuvent se faire comment suit :
le test dr["PremiumCashFlow"]==System.DBNull plante lorsque la valeur est nulle
-- Michael ---- http://michael.moreno.free.fr/ http://port.cogolin.free.fr/
Michael Moreno
Merci bien. Le probleme est qu'il me faut convetir dans un premier temps en Decimal puis en double pour que le cast fonctionne. Si je pouvais caster en double directement une telle fonction m'aurait plus en effet.
-- Michael ---- http://michael.moreno.free.fr/ http://port.cogolin.free.fr/
Merci bien.
Le probleme est qu'il me faut convetir dans un premier temps en Decimal
puis en double pour que le cast fonctionne. Si je pouvais caster en
double directement une telle fonction m'aurait plus en effet.
--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/
Merci bien. Le probleme est qu'il me faut convetir dans un premier temps en Decimal puis en double pour que le cast fonctionne. Si je pouvais caster en double directement une telle fonction m'aurait plus en effet.
-- Michael ---- http://michael.moreno.free.fr/ http://port.cogolin.free.fr/
Merlin
> Etant donne que dans le if il n'y a pas de "else" l'initialisation me parait importante.
je parlais de la réécriture avec ?: qui évite cette initialisation inutile puisque si la valeur est non nulle elle a lieu une fois pour rien.
le test dr["PremiumCashFlow"]==System.DBNull plante lorsque la valeur est nulle
c'est un exemple écrit à la volée, j'ai oublié ce détail en effet.
--
///3rL1n____
> Etant donne que dans le if il n'y a pas de "else" l'initialisation me parait
importante.
je parlais de la réécriture avec ?: qui évite cette initialisation
inutile puisque si la valeur est non nulle elle a lieu une fois pour
rien.
le test
dr["PremiumCashFlow"]==System.DBNull
plante lorsque la valeur est nulle
c'est un exemple écrit à la volée, j'ai oublié ce détail en effet.
Je cree un DataReader qui contient une collonne de type SqlDecimal qui peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de type double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value) PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]); Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd. J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull mais si la valeur dans la dr (DataReader) est nulle une exception de type InvalidCast est levee. Merci bien.
Bonjour Michael,
si tu es en .net 2.0, tu peux utiliser les types Nullable...
Je cree un DataReader qui contient une collonne de type SqlDecimal qui
peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de
type double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value)
PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]);
Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd.
J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull
mais si la valeur dans la dr (DataReader) est nulle une exception de
type InvalidCast est levee.
Merci bien.
Je cree un DataReader qui contient une collonne de type SqlDecimal qui peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de type double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value) PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]); Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd. J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull mais si la valeur dans la dr (DataReader) est nulle une exception de type InvalidCast est levee. Merci bien.
Michael Moreno
Merci
je parlais de la réécriture avec ?: qui évite cette initialisation inutile puisque si la valeur est non nulle elle a lieu une fois pour rien.
Le else est un branchement extremement couteux en performance et c'est une fonction dans laquelle j'essaie d'epargner chaque micro seconde.
--
----------------------------------------------
http://michael.moreno.free.fr/
Merci
je parlais de la réécriture avec ?: qui évite cette initialisation inutile
puisque si la valeur est non nulle elle a lieu une fois pour rien.
Le else est un branchement extremement couteux en performance et c'est
une fonction dans laquelle j'essaie d'epargner chaque micro seconde.
Merci je suis sous 1.1 et (Decimal) dr["PremiumCashflow"] lance une exception InvalidCast si dr[".."] est NULL.
Sous .Net 2.0 ca passe vraiment ?
--
----------------------------------------------
http://michael.moreno.free.fr/
Merlin
> Le else est un branchement extremement couteux en performance et c'est une fonction dans laquelle j'essaie d'epargner chaque micro seconde.
Tu n'avais pas précisé que la lourdeur concernait plus l'exécution que l'écriture. Dans ce cas oui il vaut mieux éviter ce qui pompe du temps. Tu as un profiler ?
--
///3rL1n____
> Le else est un branchement extremement couteux en performance et c'est une
fonction dans laquelle j'essaie d'epargner chaque micro seconde.
Tu n'avais pas précisé que la lourdeur concernait plus l'exécution que
l'écriture. Dans ce cas oui il vaut mieux éviter ce qui pompe du temps.
Tu as un profiler ?
> Le else est un branchement extremement couteux en performance et c'est une fonction dans laquelle j'essaie d'epargner chaque micro seconde.
Tu n'avais pas précisé que la lourdeur concernait plus l'exécution que l'écriture. Dans ce cas oui il vaut mieux éviter ce qui pompe du temps. Tu as un profiler ?
--
///3rL1n____
Der§en
Traîtres, tu abandonnes lâchement Borland ;o)))
Der§en.
"Michael Moreno" a écrit dans le message de news:
Bonjour,
Je cree un DataReader qui contient une collonne de type SqlDecimal qui peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de type double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value) PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]);
Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd. J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull mais si la valeur dans la dr (DataReader) est nulle une exception de type InvalidCast est levee.
Merci bien.
-- Michael ---- http://michael.moreno.free.fr/ http://port.cogolin.free.fr/
Traîtres, tu abandonnes lâchement Borland ;o)))
Der§en.
"Michael Moreno" <michael.ToRemove.moreno@free.fr> a écrit dans le message
de news: mn.7b727d62c4fa8c06.21643@free.fr...
Bonjour,
Je cree un DataReader qui contient une collonne de type SqlDecimal qui
peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de type
double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value)
PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]);
Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd.
J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull mais
si la valeur dans la dr (DataReader) est nulle une exception de type
InvalidCast est levee.
Merci bien.
--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/
Je cree un DataReader qui contient une collonne de type SqlDecimal qui peut etre nulle.
Afin d'obtenir la valeur que je dois enregistrer dans une variable de type double j'ai ecrit le code suivant :
double PremiumCashFlow = 0;
if (dr["PremiumCashflow"] != System.DBNull.Value) PremiumCashFlow = (double)((Decimal) dr["PremiumCashflow"]);
Est-ce que j'utilise la bonne methode pour ce genre de cas ?
Cela me parait lourd. J'ai essaye de caster en SqlDecimal et d'utiliser la propriete IsNull mais si la valeur dans la dr (DataReader) est nulle une exception de type InvalidCast est levee.
Merci bien.
-- Michael ---- http://michael.moreno.free.fr/ http://port.cogolin.free.fr/