Laden...

leerer Inhalt in die db schreiben

Erstellt von zerberos vor 15 Jahren Letzter Beitrag vor 15 Jahren 857 Views
Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 15 Jahren
leerer Inhalt in die db schreiben

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.

G
497 Beiträge seit 2006
vor 15 Jahren

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.

3.971 Beiträge seit 2006
vor 15 Jahren

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...

Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 15 Jahren

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

G
497 Beiträge seit 2006
vor 15 Jahren

erlaubt die Spalte in der Access-Tabelle denn Nullwerte?

Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 15 Jahren

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