Impossible de convertir implicitement le type " virgule?' à 'virgule'.
dts est mon sqldatareader et je veux vérifier que le curPrice valeur de type decimal est null.
inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.GetDecimal(7);
C'est le message d'erreur que j'obtiens:
Impossible de convertir implicitement le type " virgule?' à 'virgule'. Explicite
conversion existe (vous manque un plâtre?)
Où vais-je tort, il vous plaît quelqu'un me le dire.
Vous devez vous connecter pour publier un commentaire.
convertir
curPrice
à nullable, ou de l'utilisation .La valeur de la propriété de types nullables.Si
curPrice
est une propriété d'une classe puisdecimal?
indique que c'est un nullable décimal; vous devez utiliser laValue
propriété pour obtenir la valeur réelle (si elle existe, déterminée parHasValue
).Je suis en supposant que
curPrice
est un non nullable décimal, dans ce cas, vous devez également trouver une meilleure valeur de retour denull
de la vraie côté de votre opérateur ternaire.Depuis le côté gauche (
Price
) ne permet pas denull
alors vous ne pouvez pas définir sa valeur à quelque chose qui pourrait êtrenull
. Par conséquent, l'utilisation.GetValueOrDefault(decimal defaultValue)
pour retourner une valeur par défaut lors de lanull
.Comment convertir le
decmial?
type dedecimal
?Vous devez avoir de la valeur que vous aimez
inrec.curPrice
ont quandsdr.GetDecmial(7)
est null.Je suppose que vous souhaitez utiliser 0 si ce qui est renvoyée est null. Si pas de changement
0M
à une autre valeur décimale.--- Mise à jour après relecture
Comment sur
inrec.curPrice = sdr.IsDBNull(7) ? 0M : sdr.GetDecimal(7);
?.GetDecimal()
dans MDSN, Il renvoie unedecimal
et pasdecimal?
donc, ma réponse est un non-sens. Désolé à ce sujet.