Announcement

Collapse
No announcement yet.

Textfelder wollen Eintrag, obwohl ich eingestellt hab, dass NULL erlaubt ist

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

  • Textfelder wollen Eintrag, obwohl ich eingestellt hab, dass NULL erlaubt ist

    Hallo Forum,

    ich habe eine sql-Datenbank erstellt und diese per TableAdapter mit den Textfeldern und Comboboxen in vb verknüpft. Ich hab direkt im sql eingestellt, welche Felder NULL erlauben und welche nicht. Diese Werte wurden auch in den TableAdptern übernommen. Nur beim Ausführen des Programms zwingt er mich, in jedes Feld (anscheinend aber nur in die Zahlenfelder, nicht in die Felder mit Text) etwas zu schreiben. Und umgekehrt erlaubt er mir, aus einem Textfeld raus zu gehen, ohne etwas rein zu schreiben, und dabei muss genau in dem etwas stehen.
    Gibt es noch irgendwo einen Eintrag, den ich diesbezüglich ändern muss? Hab ich noch irgendwas übersehen?

    danke und viele Grüße

  • #2
    Du musst uns schon verraten welche Technik du benutzt. ADO, Linq2SQL, EntityFramework, irgendein ORM? Und welche Controls benutzt du in der GUI zur Darstellung. Textboxen oder zum Beispiel bei den Zahlen etwas spezielleres?

    Das das mit Texten so funktioniert (oder auch nicht je nachdem was du willst) sollte dir aber schon klar sein. Da null(bzw. nothing) etwas anderes ist als ein leerer String.

    Comment


    • #3
      Sorry,
      aber ich weiß nicht, was da standardmäßig eingestellt ist, wenn man die TableAdapter in Visual Studio 2010 Express benutzt. Ich hab zumindest nichts extra eingefügt oder installiert.
      Ich verwende bei der ganzen Oberfläche nur Textboxen, sowohl beim Text als auch bei den Zahlen.
      Genau, und weil NULL etwas anderes ist als ein leerer string, dürfte er mir doch auch nicht erlauben, aus der Textbox rauszugehen, ohne etwas hingeschrieben zu haben (ich hab ja in der sql-Datenbank definiert, dass dieses Feld nicht NULL sein darf).

      Vielen Dank

      Comment


      • #4
        aber ich weiß nicht, was da standardmäßig eingestellt ist, wenn man die TableAdapter in Visual Studio 2010 Express benutzt. Ich hab zumindest nichts extra eingefügt oder installiert.
        Tableadapter benutzt man bei ADO.Net. Und der Hinweis auf Tableadapter sagt uns noch das du typisierte Datasets einsetzt.

        ADO.Net ist älter als der Nullable Datatype(kam erst mit dem 2.0er Framework ADO.Net gibts aber schon von Anfang an). Nullable wird daher in ADO.Net simuliert in dem es ein normale (nicht nullable) Property zum Beispiel vom Typ Integer anlegt und dann ein 2.te Property mit Namen IsPropertyNameNull die anzeigt bzw. steuert ob der Wert in der nicht nullable Property eigentlich Null sein sollte oder eben der Wert in der Property zieht. Das Verfahren ist also nicht kompatibel zu Databinding und bedarf manuellen Eingriff auf die besagte 2.te Property.

        Ich habe selbst schon länger nicht mehr mit ADO.Net gearbeitet so das ich hier die Best Pratices nicht mehr auf der Pfanne habe. Vielleicht kann da jemand anderes einspringen.

        Comment


        • #5
          Ja, und zwar gibt es bei dem bestimmten Feld unter Eigenschaften eine Eintragungn: NULL Value. Da steht bei mir <Throw exception>, aber es steht theoretisch noch <Nichts> und <Empty> zur Auswahl. Wenn ich jetzt <Nichts> auswähle, dann sagt er mir: Das steht für diesen Datentypen nicht zur Verfügung. Als Datentyp hab ich in dem Feld system.double (bzw. float in sql).
          Könnte es irgendwie damit zusammen hängen?

          Comment


          • #6
            Damit wird nur gesteuert was beim auslesen des Feldes passieren soll wenn dieses null ist, beim reinschreiben hilft dir das nicht. Bei Strings kannst du da null eintragen aber nur weil der string Datatype null sein darf. Bei Double, Integer u.s.w., die nicht null sein können, ist das logischerweise nicht einstellbar und wie gesagt ADO.Net berücksichtigt nicht das es seit Net 2.0 denn nullable Datatype gibt.

            Comment

            Working...
            X