“Pas de conversion implicite entre " <null>' et 'Système.DateTime'” message d'erreur
Dans une question précédente:
"Cette méthode ou propriété ne peut pas être appelée sur les valeurs Null" erreur
J'ai eu un problème avec le code suivant:
client_group_details.Add(new ClientGroupDetails(
reader.GetString(Col2Index),
reader.GetString(Col3Index)));
Où je recevais le message d'erreur suivant:
Data is Null. This method or property cannot be called on Null values.
Ce problème a été résolu en utilisant le code suivant:
client_group_details.Add(new ClientGroupDetails(
reader.IsDbNull(Col2Index) ? null : reader.GetString(Col2Index),
reader.IsDbNull(Col3Index) ? null : reader.GetString(Col3Index)));
J'ai maintenant un problème similaire avec GetDateTime
et GetInt32
, à titre d'exemple:
client_group_details.Add(new ClientGroupDetails(
reader.GetString(Col2Index),
reader.GetString(Col3Index),
reader.GetDateTime(Col4Index)));
J'ai essayé d'utiliser les méthodes suivantes pour résoudre ce problème, mais il ne fonctionne pas
client_group_details.Add(new ClientGroupDetails(
reader.IsDbNull(Col2Index) ? null : reader.GetString(Col2Index),
reader.IsDbNull(Col3Index) ? null : reader.GetString(Col3Index),
reader.IsDbNull(Col2Index) ? null : reader.GetDateTime(Col4Index)));
Il donne l'erreur:
Compiler Error Message: CS0173: Type of conditional expression cannot be determined because there is no implicit conversion between '<null>' and 'System.DateTime'
Après la recherche d'une solution, j'ai trouvé: Type Nullable problème avec ?: Opérateur Conditionnel. Mais lorsque j'essaie d'utiliser ce code, je reçois ) expected
.
Comment pourrais-je résoudre ce problème?
Poste le code que vous avez essayé d'utiliser qui a causé la
) expected
erreur. C'est une simple erreur de syntaxe qui devrait être facile à corriger.Merci à John Saunders pour préciser j'ai raté le point entièrement. Réponse supprimée.
20 heures et toujours pas de signe de le code avec le réel problème avec la parenthèse. Fermeture trop pas une vraie question.
OriginalL'auteur oshirowanen | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
Il vous manque une parenthèse fermante quelque part.
Devrait probablement changer pour
ou quelque chose de similaire. En fonction de votre code exact quelqu'un sera en mesure de vous dire où le manque du support.
OriginalL'auteur James Osborn
DateTime
est unstruct
et, par conséquent, un type de valeur et ne peut pas êtrenull
. Seuls les types de référence etNullable<>
types peuvent être null. Vous devez utiliser unNullable<DateTime>
. Cela peut aussi être écrit commeDateTime?
.) expected
.Essayez d'utiliser
reader.IsDBNull(Col2Index) ? (DateTime?)null : reader.GetDateTime(Col4Index)
. L'opérateur ternaire est confus, dans la mesure où il ne peut pas déterminer le type denull
.Vous avez une erreur de syntaxe quelque part. Vous avez plus de
(
que)
. Essayez d'ajouter un)
à la fin.le code qui pose la
) expected
d'erreur. l'Ajout de)
à la fin, peut ou ne peut pas résoudre le problème.OriginalL'auteur Olivier Jacot-Descombes