Benutzer mit den meisten Antworten
[VB.NET 2005] Textfelder mit SQL Datenquelle leer lassen können?

Frage
-
Tach zusammen,
habe leider keine Antwort auf meine Frage gefunden daher mal ein neues Thema. Und zwar versuche ich in VB.NET 2005 Prof auf einem Windows Form Textfelder mit SQL Server Datenquelle (Felder haben den Datentyp Float und lassen NULL-Werte zu) zu erstellen. Allerdings suche ich eine einfache Möglichkeit, es zu erlauben diese Textfelder nach einer geschehenen Eingabe auch wieder leer lassen zu können. Doch zur Zeit bleibt man dann in diesem Textfeld hängen und darf dieses erst verlassen, wenn eine Eingabe von z.B. einer "0" erfolgt. Gibt es da eine Möglichkeit? Am besten ohne gleich für alle Textfelder ein Clear auszulösen?
MfG
Philipp
Antworten
-
Hallo Philipp,
bei der Datenbindung kannst Du die Binding. NullValue-Eigenschaft verwenden.
Wenn Du diese auf eine leere Zeichenfolge einstellst, werden leere Textfelder
als DBNull -> NULL gespeichert.
Dummerweise geht es nicht über Dialogfeld "Formatierung und erweiterte Bindung"
denn dort wird eine leere Zeichenfolge als Nothing interpretiert.Gruß Elmar
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Montag, 30. August 2010 14:00
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 1. September 2010 13:49
Alle Antworten
-
Hallo Philipp,
bei der Datenbindung kannst Du die Binding. NullValue-Eigenschaft verwenden.
Wenn Du diese auf eine leere Zeichenfolge einstellst, werden leere Textfelder
als DBNull -> NULL gespeichert.
Dummerweise geht es nicht über Dialogfeld "Formatierung und erweiterte Bindung"
denn dort wird eine leere Zeichenfolge als Nothing interpretiert.Gruß Elmar
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Montag, 30. August 2010 14:00
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 1. September 2010 13:49
-
Muss das Thema leider nochmal aufgreifen. Kann dem leider nicht so ganz folgen. Problem ist wie gesagt, das es sich um SQL-Float Felder handelt. Sobald man im Windows Form ein datengebundenes Feld dieses Typs fokusiert und einen Wert reinschreibt diesen wieder entfernt, kann man das Feld nicht mehr verlassen, genauso die Forms nicht mehr schließen. Was genau muss ich dort definieren?
-
Hallo,
zum Beispiel für eine Spalte aus den Northwind Products:
wobei der vorletzte Parameter im Binding-Konstruktor hier eine leere Zeichenfolge als NullValue festlegt.Me.UnitPriceTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.ProductsBindingSource, "UnitPrice", True, System.Windows.Forms.DataSourceUpdateMode.OnValidation, "", "N2"))
Beachte, dass das Datenbankfeld dann auch NULL zulassen sollte -
wenn nicht solltest Du bei einem leeren Textfeld mindestens eine "0" vorgeben.
Oder aber das Ganze via Binding.Parse selbst behandeln.In Validierung von Benutzereingaben in Windows Forms wird u. a. im Abschnitt
"Schließen des Formulars und Überschreiben der Validierung" beschrieben,
wie man durch Überschreiben von FormClosing das Schliessen des Formulars
bei Validationsfehlern ermöglichen kann.
Gruß Elmar