NULL-Wert in Datenbank / Tabelle schreiben (MSSQL)

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Fonsi.

    NULL-Wert in Datenbank / Tabelle schreiben (MSSQL)

    Hi,

    ich hänge grad an folgendem Problem: Wie kann ich explizit einen NULL-Wert in eine Tabelle schreiben?

    Ich hab folgendes versucht

    VB.NET-Quellcode

    1. cmd.CommandText = "INSERT INTO test(nullint,nullstring) VALUES(" & DBNull.Value & ",'test')"
    2. cmd.ExecuteNonQuery()


    Dann krieg ich aber ne Fehlermeldung
    Falsche Syntax in der Nähe von ','


    Problem ist, dass ich in meinem Formular ne Textbox hab, die geändert werden kann und wenn ne Zahl drin steht, soll die in die entsprechende Spalte der Tabelle eingetragen werden. Wenn die Textbox leer ist, muss auch die entsprechende Spalte in der Tabelle mit einem UPDATE geleert werden.
    Hi,

    es gibt eine gute und eine schlechte Lösung ^^. Die schlechte ist die mit der du arbeitest. Die baust also einen SQL string so zusammen und baust die entsprechenden Werte mit ein. Du müsstest prüfen ob ein Wert null ist und dann den Text 'null' eintragen. Sonst sieht dein Text so aus:

    SQL-Abfrage

    1. INSERT INTO test(nullint,nullstring) VALUES( , 'der wert' )


    Und genau das ist der Fehler der dir da angezeit wird.

    Ist irgendwie unsauber.



    Besser ist, wenn du mit Parametern arbeitest:

    VB.NET-Quellcode

    1. cmd.CommandText = "INSERT INTO test(nullint,nullstring) VALUES( @p_nullint, @p_nullstring )"
    2. cmd.Parameters.Add("p_nullint", DbType.Integer).Value = System.DbNull.Value
    3. cmd.Parameters.Add("p_nullstring", DbType.String).Value = "Dein Wert"
    4. cmd.ExecuteNonQuery()


    So oder so ähnlich musst du die Parameter zum Command hinzufügen. Das hängt davon welche ADO.NET Implementation (MySql, Oralce, OleDb, ...) du verwendest.

    Gruß

    Jens