Bei "AllowDBNull" Spalten in einer Tabelle im Dataset vor dem Endedit Inhalt prüfen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Bei "AllowDBNull" Spalten in einer Tabelle im Dataset vor dem Endedit Inhalt prüfen

    Hello!

    Ich möchte mich erkundigen wies richtig geht!

    Ich habe in einer Tabelle im Dataset eine Spalten mit AllowDBNull = false

    Nun habe ich einige Detail Views für verschiedene Tabellen.
    Man liest hier ja immer Try Catch ist ein heißes Eisen und so, daher versuche ich nun vorab alle möglichen Fehler zu berücksichtigen.

    Die Details sind an die Bindingsource der jeweiligen Tabelle geklebt, ist daher in Ordnung vor dem

    Quellcode

    1. Validate()
    2. BsDerTabelle.Endedit()
    3. DgvDerTabelle.Refresh()


    einfach die gebundene Textbox auf Inhalt zu prüfen???

    Habe derzeit einfach eine Function die True beim richtigen Wert zurück gibt und False wenn der Inhalt leer ist oder ein falscher Datentyp.

    Oder soll ich vor dem .Endedit() irgendwie mit Current in der Bindingsource direkt schauen???

    Ist die Art und Weise überhaupt richtig???

    Löschen tu ich grad auch so ähnlich, (jedoch noch ohne Abfrage ob der User wirklich löschen will)
    Hier gibt nen Button im Toolstripmenu:

    Quellcode

    1. Private Sub TsBtnDeleteKundendaten_Click(sender As Object, e As EventArgs) Handles TsBtnDeleteKundendaten.Click
    2. If TblKundenBindingSource.Count > 0 Then
    3. TblKundenBindingSource.RemoveCurrent()
    4. Else
    5. MessageBox.Show("Es kann in einer leeren Tabelle kein Datensatz gelöscht werden!")
    6. End If
    7. End Sub
    Gruß Hannes

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hans im glück“ ()

    ok dann hier nochmals eine einfachere Darstellung mit dem selben Zweck aufs minimum der vorhergehenden Anfrage reduziert (hab gestern abend vllt auch etwas durcheinander gepostet...)

    Vorhanden im miniprojekt:

    einmal dataset, einmal table, einmal datagridview und zwei buttons zum neuen datensatz anlegen und speichern (siehe bilder anhang).

    wenn nun ein neuer Datensatz angelegt wird und der alte in der Spalte Namen keinen Inhalt hat kommt (zu recht) die Fehlermeldung ​Spalte 'Name' läßt nicht 'nulls' zu.

    Gleiches passiert beim Endedit in manchen Situationen.

    Daher die Frage: Wie kann ich abfangen ob der Datensatz komplett bearbeitet wurde um den Fehler ohne Try Catch zu behandeln bzw. erst garnicht entstehen zu lassen?
    Bilder
    • vb-ds.JPG

      46,28 kB, 677×415, 121 mal angesehen
    • vb-form.JPG

      39,46 kB, 1.017×538, 115 mal angesehen
    • vb-error.JPG

      72,27 kB, 990×527, 117 mal angesehen
    Gruß Hannes
    ich muss nochmal aufwärmen....

    es geht um das abspeichern von datensätzen im detail view:
    wäre es deiner auffassung nach erlaubt bei details views in den textboxen nach inhalt zu suchen bevor ich mit bindingsource .endedit() speicher? es wurde ja des öfteren das verbot erteilt in controls nach inhalt zu angeln, es wäre ja streng genommen so auch nicht sicher zu prüfen ob der richtige datentyp eingegeben wurde?!

    oder kann ich nicht auch über die bindingsource current ggfls. abfragen ob spalten inhalte haben bevor endedit ausgeführt wird?
    Gruß Hannes