Laden...

Ist es möglich in einem DateTime '01.01.0001' zu unterdrücken (analog Zahlen)?

Erstellt von Brendan vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.293 Views
B
Brendan Themenstarter:in
39 Beiträge seit 2006
vor 10 Jahren
Ist es möglich in einem DateTime '01.01.0001' zu unterdrücken (analog Zahlen)?

Guten Tag,

Wir verwenden in unserer Anwendung den TrueDBGrid von ComponentOne.
In den Columns gibt es ein Property namens NumberFormat, in dem man Format-Strings hinterlegen kann.
Bisher haben wir bei Zahlen über den entsprechenden Format-String die Darstellung von Nullwerten - also z.B. 0,00 - unterdrückt.
Nun ist bei uns die Frage aufgetaucht, ob man dasselbe für DateTime-Felder machen könnte, die in den Daten z.B. "01.01.0001" enthalten.
Bisher ist für Datumsfelder als NumberFormat "d" für ShortDate eingestellt.

Weiß jemand Rat?

Mit freundlichen Grüßen und schönes Wochenende,
Brendan

Die Lösung ist immer ganz einfach.
Nur der Weg dorthin ist schwierig!

3.511 Beiträge seit 2005
vor 10 Jahren

Hallo,

zu deinem eigentlichen Problem mit dem Grid kann ich nichts sagen, aber warum verwendet ihr keine Nullable Typen um festzustellen, ob überhaupt ein Wert vorhanden ist? Denn auch 0,00 könnte ja tatsächlich ein gültiger Wert sein, der dann aber ausgeblendet wird. Bei einem Nullable kommt das nicht vor.

Gruß
Khalid

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

A
350 Beiträge seit 2010
vor 10 Jahren

Hi,

01.01.0001 ist gleich DateTime.MinValue.
Wenn du dieses also abfragst solltest du es auf Null setzen können oder leer oder was auch immer du setzen willst .

Grüße

16.807 Beiträge seit 2008
vor 10 Jahren

Dass der Wert der MinValue entspricht, ist bei dieser Art von Datentyp aber Zufall.
Besser ist bei DateTime und andren Sturkturen den Default-Value abzufragen, ob diese dem Urzustand entsprechen.

In diesem Fall ist es aber deutlich besser ein Nullable<T> einzuführen und gegen null zu prüfen.