2010-10-04 5 views
3

Je suis en train de définir le champ de date sur un Datetime.Now qui est en train d'être effectué via la requête SQL sur la base de données.Comment gérez-vous les valeurs NULL dans un champ Date via votre code C#?

Je fais

SELECT NVL(mydatefield, sysdate) FROM myView; 

Ce n'est pas l'approche la plus élégante que je peux penser. La meilleure pratique serait de vérifier une valeur NULL. J'ai trouvé que la classe DateTime ne supporte pas la syntaxe que j'utilise pour les valeurs int.

Quelles approches avez-vous vu utilisées? Quelle est votre préférence? Comment pouvez-vous faire un DateTime gérer les valeurs nulles? Je ne veux pas que le code DateTime.ParseExact dans mon code frontal lève une exception.

Répondre

9

DateTime? est nullable DateTime. Vous pouvez également utiliser default(DateTime) pour rechercher des champs DateTime non définis. Une dernière option consiste à utiliser DateTime.Min ou DateTime.Max en tant que valeur spéciale.

Au lieu de DateTime.ParseExact, vous pouvez utiliser DateTime.TryParse.

string input = "2010-10-04"; 
DateTime result; 
bool success = DateTime.TryParse(input, out result); 
+0

DateHeure? ne fonctionne pas de la même manière que int? – abhi

+1

@abhi, dans mon expérience, cela fonctionne très bien. Je l'utilise tout le temps. Y a-t-il un exemple spécifique que vous pouvez donner? – Brad

+0

Je suis curieux au sujet d'un exemple aussi @abhi ... –

Questions connexes