Der Spaltenname ist ungültig. SQL

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von wlfmario.

    Der Spaltenname ist ungültig. SQL

    Hallo zusammen,

    ich versuche mich gerade wie an einen kleine DB Projekt mit VB 2008 Express .Net und dem SQL Server.
    Die DB habe ich in mein Projekt eingebunden leider bekomme ich immer folgende Meldung wenn ich etwas in die DB schreiben möchte.
    Der Spaltenname ist ungültig. [ Node name (if any) = ,Column name = Wassertiefe ]
    Ich habe hier mal den Code mit der ich die Daten in meine DB schreibe.

    VB.NET-Quellcode

    1. Public Sub DataInsert()
    2. Dim Art, Groesse, Gewicht, Gewaesser, Koeder, Tiefe, WTemp, LuftTemp, Luftdruck, Wetter, Bemerkung As String
    3. Dim Datum, Zeit As Date
    4. Dim Bild As Image
    5. Dim verbindung As System.Data.SqlServerCe.SqlCeConnection
    6. Dim cmd As SqlCeCommand
    7. Dim sql As String
    8. 'Hier kommt die Zuweisung rein.
    9. Datum = DatumDateTimePicker.Text
    10. Zeit = ZeitTextBox.Text
    11. Bild = BildPictureBox.Image
    12. Art = FischArtTextBox.Text
    13. Groesse = GroesseTextBox.Text
    14. Gewicht = GewaesserTextBox.Text
    15. Koeder = KoederTextBox.Text
    16. Gewaesser = GewaesserTextBox.Text
    17. Tiefe = WassertiefeTextBox.Text
    18. WTemp = WasserTempTextBox.Text
    19. LuftTemp = LuftdruckTextBox.Text
    20. Luftdruck = LuftdruckTextBox.Text
    21. Wetter = WetterTextBox.Text
    22. Bemerkung = BemerkungTextBox.Text
    23. 'Verbindung öffnen und Datensatz in die DB schreiben.
    24. verbindung = New SqlCeConnection("Data Source=" + Application.StartupPath + "\Database\FangbuchDB.sdf")
    25. Try
    26. verbindung.Open()
    27. sql = "INSERT INTO Fangbuch (Datum,Zeit,FischArt,Groesse,Gewicht,Gewaesser,Koeder,Wassertiefe,WasserTemp,Wetter,LuftTemp,Luftdruck,Bemerkung) Values ('" & Datum & "','" & Zeit & "','" & Art & "','" & Groesse & "','" & Gewicht & "','" & Gewaesser & "','" & Koeder & "','" & Tiefe & "','" & WTemp & "','" & Wetter & "','" & LuftTemp & "','" & Luftdruck & "','" & Bemerkung & "')"
    28. cmd = New SqlCeCommand(sql, verbindung)
    29. cmd.ExecuteNonQuery()
    30. Finally
    31. End Try
    32. verbindung.Close()
    33. 'TODO: Diese Codezeile lädt Daten in die Tabelle "FliegenfischerDBDataSet.Fliegen". Sie können sie bei Bedarf verschieben oder entfernen.
    34. Me.FangbuchTableAdapter.Fill(Me.FangbuchDBDataSet.Fangbuch)
    35. End Sub


    Leider finde ich keine Hilfe oder etwas ähnliches das mir bei dem Fehler hilft.
    Die Namen in der DB stimmen, ich habe auch schon einmal die DB neu in mein Projekt hinzugefügt.

    Kann mir jemand sagen nach was ich suchen muß ?

    Danke schon einmal für eure Antworten.

    Gruß Mario

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „wlfmario“ ()

    Bist Du Dir sicher dass es in der Datenbank die Spalte Wassertiefe gibt? Heißt oder heißt diese dort Tiefe?

    NB:
    Nach einer Datenbank sieht das aber noch nicht aus? Warum sind die Werte Art, Gewässer, Köder ggf Wetter nicht in seperate Tabellen ausgelagert? Warum arbeitest Du nur mit Texten und nicht mit Zahlfeldern für Görße, Gewicht, Tielfe, Temperatur und Luftdruck?
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    In der Datenbank gibt es die Spalte Wassertiefe !
    Tiefe habe ich nur die Var. genannt, damit es kürzer wird.
    Warum sollte ich Koeder, Gewässer ect. in Extra Tabellen machen ? Da soll der benutzer doch nur reinschreiben können an welchen Gewässer ect. er war oder welchen Köder er benutzt hat.

    Bin aber für jeden Tipp dankbar.

    Das mit den Textfeldern habe ich nur gemacht damit es am Anfang evtl. etwas Einfacher wird, dies habe ich aber schon geändert.

    Gruß Mario
    Weder das eine noch das andere wird groß helfen.
    Ich würde jetzt mal den Ansatz versuchen, den Insert mal ohne die Wassertiefe zu machen, um herauszufinden ob es an der Spalte/Spaltennamen liegt.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).