Update Command (Syntaxfehler (fehlender Operator) in Abfrageausdruck

  • VB.NET

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

    Update Command (Syntaxfehler (fehlender Operator) in Abfrageausdruck

    Hey funktioniert das erste geht schon das nächste nicht mehr....

    Wenn ich Änderungen in der Datenbank vornehmen möchte bekomme ich die folgende Fehlermeldung Syntaxfehler (fehlender Operator) in Abfrageausdruck '"2" Titelid = "Elisabeth" Vorname = "Herr" Nachname = "Heik"'.

    hier ist mein derzeitiger Code:

    VB.NET-Quellcode

    1. Private Sub btnändern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnändern.Click
    2. Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Dokumente und Einstellungen\rinc-e\Eigene Dateien\Probedb.mdb;"
    3. DataGridView1.Columns.Clear()
    4. If txttitel.Text = "" Or txtkundenid.Text = "" Or txtnachname.Text = "" Or txtvorname.Text = "" Or txtstrasse.Text = "" Then
    5. MsgBox("Bitte Überprüfen Sie Ihre Eingabe!", vbCritical, "Falsche Eingabe")
    6. Else
    7. dataset.Tables.Add(New DataTable)
    8. da = New OleDbDataAdapter("UPDATE Kunden SET Kundenid = """ & txtkundenid.Text & """ Titelid = """ & txttitel.Text & """ Vorname = """ & txtvorname.Text & """ Nachname = """ & txtnachname.Text & """ WHERE Strasse = """ & txtstrasse.Text & """;", Con)
    9. da.Fill(datatable) 'Fehler liegt in dieser Zeile.. habe es auch schon in Update umgewandelt aber da passiert nicht
    10. bis auf das mein DataGrid sich leert....
    11. bindingsource.DataSource = datatable
    12. Me.DataGridView1.DataSource = bindingsource
    13. End If
    14. End Sub



    bin dankbar für jede hilfe :D

    lg Carina
    Wie sind die einzelnen Spalten in der DB konfiguriert (Integer, Varchar, ...)
    Bei Strings (Varchar) musst du ein Hochkomma (') am Anfang und Ende platzieren. Bei Integer rein der Text (bzw. Zahl halt)


    Bsp.: (Vermute KundenId = Integer, TitelId = Integer, Vorname = Varchar, Nachname = Varchar, Strasse = Varchar)

    VB.NET-Quellcode

    1. "UPDATE Kunden SET Kundenid = " & txtkundenid.Text & ", Titelid = " & txttitel.Text & ", Vorname = '" & txtvorname.Text & "', Nachname = '" & txtnachname.Text & "' WHERE Strasse = '" & txtstrasse.Text & "';", Con)


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Vielen danke für die schnelle Antwort also dein Code stimmt :thumbsup: und du hast recht bzgl Integer und Varchar ist doch schon 7 Jahre her...

    jedoch meldet er sich jetzt mit einer anderen Fehlermeldung OleDbException wurde nicht behandelt / Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.

    Wieder die Zeile

    VB.NET-Quellcode

    1. da.Fill(datatable)


    lg
    tja da ich selber damit keine Erfahrung habe kann ich dir die Frage nicht beantworten... aber ich denke schon das es funktioniert habe schon andere bsp gesehn aber keins das mir weiterhelfen kann... auf den code bezogen....

    Hast du vielleicht eine andere lösung für mein Update problem... viell würdest du den kompletten sub umändern...

    bin für alles offen ^^

    lg

    longlekker schrieb:

    jedoch meldet er sich jetzt mit einer anderen Fehlermeldung OleDbException wurde nicht behandelt / Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.


    Klassische Meldung wenn ein Feld-Name nicht existiert oder der zu schreibende Wert nicht das passende Format hat.

    Prüfe mal alle Field-Namen durch ob die auch wirklich in der Tabelle genauso existieren und dazu welchen DB-Typ die haben.

    Gruß

    Rainer
    @ longlekker

    Glaub mir, der Fehler ist genau in dieser Richtung zu suchen: Field existiert nicht/Field-Name stimmt nicht, übergebener Wert stimmt nicht vom Datentyp her/oder die Typ-Literale (wie ' oder #) sind für den Datentyp falsch/vergessen worden ... also irgendein Fehler in der Field-Bezeichnung oder den zu schreibenden Werten.

    Irgendwas in dieser Richtung ist das Problem bei dieser Fehlermeldung. Das ist definitiv Fakt.

    Gruß

    Rainer