Announcement

Collapse
No announcement yet.

Datum in Datenbank NULL --> Anzeige in Form 01.01.0001

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datum in Datenbank NULL --> Anzeige in Form 01.01.0001

    Hallo!

    Ich habe eine Klasse cPerson, u.a. mit der Eigenschaft Geburtstag. Diese Klasse habe ich als Objektdatenquelle definiert und diese ist in einem Formular über eine BindingSource an eine Textbox gebunden.

    Nun lese ich aus einer MS SQL Datenbank einen Datensatz aus. In diesem Datensatz aber ist das Feld Geburtsdatum NULL.

    Nun weist mir die Textbox den Wert 01.01.0001 aus. Ich möchte aber, wenn in der Datenbank NULL steht (also das Geburtsdatum nicht gepflegt ist, dass in der Textbox (oder DateTimePicker) nichts steht.

    Kann mir da jemand einen Tipp geben?

    Danke

  • #2
    Da DateTime ein struct ist kann es nicht null sein und wird deswegen wohl mit so etwas wie new DateTime(0) instantiiert was dann wohl der 01.01.0001 ist. Evtl. musst Du das in deinem OR-Mapper ändern. Irgendwie musst Du wohl den Wert in cPerson nach dem Lesen aus der Datenbank auf NULL bringen. Vielleicht hilft es auch schon die Property Geburtstag als DateTime? zu deklarieren. Dann kann der Geburtstag auch NULL sein. Welche Datenbankzugriffsmethode verwendest Du denn (Entity Framework, ADO.NET, NHibernate, ...)?

    Comment


    • #3
      Originally posted by fanderlf View Post
      Da DateTime ein struct ist kann es nicht null sein und wird deswegen wohl mit so etwas wie new DateTime(0) instantiiert was dann wohl der 01.01.0001 ist. Evtl. musst Du das in deinem OR-Mapper ändern. Irgendwie musst Du wohl den Wert in cPerson nach dem Lesen aus der Datenbank auf NULL bringen. Vielleicht hilft es auch schon die Property Geburtstag als DateTime? zu deklarieren. Dann kann der Geburtstag auch NULL sein. Welche Datenbankzugriffsmethode verwendest Du denn (Entity Framework, ADO.NET, NHibernate, ...)?
      Danke für die schnelle Rückmeldung

      Die Property Geburtstag ist bereits vom typ datetime

      Die Zugriffsmethode ist ADO.NET.

      Comment


      • #4
        Und wie genau holst Du die Daten aus der Datenbank? Mit einem eigenen SQL Kommando und dann mappen auf Dein Objekt? Oder SQLDataSource?

        Comment


        • #5
          Die Property Geburtstag ist bereits vom typ datetime
          Und kann deshalb nicht null sein du musst schon einen Nullable DateTime nehmen.

          Wenn du irgendwo eine DataRow auf dein cPerson Object mappst musst du immer prüfen ob nicht irgendein Wert auch NULL sein darf. Da die Spalten der DataRow selbst bei Basisdatentypen nicht NULL sein kann (DataRow ist älter als NULLABLE Datentypen) hat die DataRow dafür eine IsNull(MeineColumn) Methode die dir die entsprechende Info liefert ob der Wert in der Column auch zu benutzen ist oder nicht doch irgendeinen ~beliebiger~ Wert enthält der aber eigentlich NULL bedeuten soll.

          Comment

          Working...
          X