verwendetes Datenbanksystem: <Oracle 9i>
Hallo,
ich bin dabei Textfelder in einer Datenbank zu schreiben. Benutze dafür jetzt Parameter
cmd.Parameters.AddWithValue("@LL", TXT_LL.Text)
Das Datenbankfeld ist vom Typ Double
Wenn jetzt im Textfeld was drinnen steht, dann funktioniert alles einwandfrei
Wenn jetzt allerdings nichts im Textfeld drinnen steht, der also in die Zelle in der Datenbank nichts eintragen muss, dann kommt diese Fehlermeldung:
Datentypen in Kriterienausdruck unverträglich.
entweder schlägt die Geschichte fehl, weil die interne Konvertierung von Datentyp String (das ist der Datentyp, den ein Textbox-Text hat) zu Double fehlschlägt (Double.Parse müsste mit einem leeren String auch fehlschlagen) oder weil die Tabellenspalte keine Nullwerte erlaubt. Ich tippe bei der Fehlermeldung auf ersteres.
Hallo GarlandGreene,
Wie du sschon richtig vermutet hast, funktioniert Zahl.Parse nicht bei leeren Strings. Funktioniert beispielsweise auch nicht wenn du " 123,456" angibst (führendes Leerzeichen)
@zerberos,
du müsstest manuell prüfen ob die Textbox leer ist und dann entsprechend null übergeben. Wenn keine null-Werte für die Spalte zugelassen sind, kriegst du dennoch eine Exception
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Also hab jetzt folgendes probiert
schreibe momentan testweise in ne access datenbank
If TXT_OX1_C_MIN.Text = Nothing Then
cmd.Parameters.AddWithValue("@C", Nothing)
Else
cmd.Parameters.AddWithValue("@C", TXT_OX1_C_MIN.Text)
End If
Bekomme allerding folgenden Fehler:
Parameter?_7 hat keinen Standardwert.
funktioniert allerdings nicht wenn kein Standartwert in Access angegeben ist. Weiß einer wie das bei oracle ist. Würde das da funktionieren
erlaubt die Spalte in der Access-Tabelle denn Nullwerte?
jo. hab nur flaschen code benutzt
das hier funktioniert:
If TXT_LL.Text = Nothing Then
cmd.Parameters.AddWithValue("@LL", System.DBNull.Value)
Else
cmd.Parameters.AddWithValue("@LL", TXT_LL.Text)
End If