"Insert into" - Syntaxfehler

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Homer_Simpson.

    "Insert into" - Syntaxfehler

    Hallo zusammen,
    ich habe hier ein kleines Problem.


    Ich habe eine ListView (lvea) und ich möchte deren Items und Subitems in eine Datenbank schreiben.
    (Tabelle = EinmaligeAusgaben)

    Soweit so gut.
    Ich habe folgenden Code:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim anzahl As Integer
    2. Dim x As Integer = -1
    3. Dim con As New OleDb.OleDbConnection
    4. Dim cmd As New OleDb.OleDbCommand
    5. con.ConnectionString = _
    6. "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    7. "Data Source=" & Application.StartupPath & "\Datenbank\Haushaltsbuch.mdb"
    8. cmd.Connection = con
    9. Try
    10. con.Open()
    11. For Each item In LVEA.Items
    12. x = x + 1
    13. LVEA.Items(x).Selected = True
    14. cmd.CommandText = _
    15. "insert into EinmaligeAusgaben " & _
    16. "(Kategorie, Bezeichnung, Datum, " & _
    17. "Betrag) " & _
    18. "values ('" & _
    19. LVEA.SelectedItems(0).Text & "', '" & _
    20. LVEA.SelectedItems(0).SubItems(1).Text & "', " & _
    21. LVEA.SelectedItems(0).SubItems(2).Text & ", " & _
    22. LVEA.SelectedItems(0).SubItems(3).Text & "')"
    23. LVEA.Items(x).Selected = False
    24. anzahl = cmd.ExecuteNonQuery()
    25. If anzahl > 0 Then
    26. MsgBox("Es wurde ein Datensatz eingefügt")
    27. End If
    28. Next
    29. Catch ex As Exception
    30. MsgBox(ex.Message)
    31. End Try
    32. con.Close()



    Allerdings erhalte ich folgenden Fehler, wenn ich die Daten in der Datenbank speichern möchte:
    ("50" ist der Wert des 3. Subitems.)
    "Syntaxfehler in Zeichenfolge in Abfrageausdruck '50')'.

    Vielleich kann mir ja jemand helfen.
    Vielen Danke schonmal.
    Grüße, Homer. :)
    Versuchs mal so

    VB.NET-Quellcode

    1. LVEA.SelectedItems(0).Text & "', '" & _
    2. LVEA.SelectedItems(0).SubItems(0).Text & "', " & _
    3. LVEA.SelectedItems(0).SubItems(1).Text & ", " & _
    4. LVEA.SelectedItems(0).SubItems(2).Text & "')"


    Listen sind 0 Bassierend
    Danke für den Hinweis, das war aber leider nicht des Fehlers Lösung.
    Habe den Code mal etwas umgewandelt.
    Sieht jetzt so aus:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim x As Integer = -1
    2. Dim con As New OleDb.OleDbConnection
    3. Dim cmd As New OleDb.OleDbCommand
    4. con.ConnectionString = _
    5. "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    6. "Data Source=" & Application.StartupPath & "\Datenbank\Haushaltsbuch.mdb"
    7. cmd.Connection = con
    8. Try
    9. con.Open()
    10. For Each item In LVEA.Items
    11. x = x + 1
    12. LVEA.Items(x).Selected = True
    13. cmd.CommandText = "insert into EinmaligeAusgaben " & "(Kategorie, Bezeichnung, Datum, Betrag) " & "values ('" & LVEA.SelectedItems(0).Text & "', '" & LVEA.SelectedItems(0).SubItems(1).Text & "', " & LVEA.SelectedItems(0).SubItems(2).Text & ", " & Val(LVEA.SelectedItems(0).SubItems(3).Text) & ")"
    14. LVEA.Items(x).Selected = False
    15. Next
    16. Catch ex As Exception
    17. MsgBox(ex.Message)
    18. End Try
    19. con.Close()



    Jetzt kommt auch keine Fehlermeldung mehr, allerdings wird auch nichts in die Datenbank eingetragen. :S
    Versuchs mal so

    VB.NET-Quellcode

    1. cmd.CommandText = "insert into EinmaligeAusgaben (Kategorie, Bezeichnung, Datum, Betrag) values ('" & LVEA.SelectedItems(0).Text & "', '" & LVEA.SelectedItems(0).SubItems(1).Text & "', '" & LVEA.SelectedItems(0).SubItems(2).Text & "', '" & LVEA.SelectedItems(0).SubItems(3).Text & "')"

    Wenn das auch nicht geht dann mach mal ein Bild von der Fehlermeldung