Zum Inhalt springen

Probleme mit Update Statement mit einer access


Empfohlene Beiträge

Geschrieben

hey leute,

hab hier grad ein kleines problem mit einem sql update. Dieser gibt mir nur teilweise sehr ungenaue Fehleraussagen zurück. Nun dachte ich ich poste hier mal mein cmd hin und ihr sagt mir was da fehlt. Ich denke das mir irgendwo noch ein einfaches Hochkomma fehlt.


 Dim adapter As New OleDb.OleDbDataAdapter()

        Dim sql As String


        ' connection = New SqlConnection(connetionString)


        sql = "update Kontakte SET Firma ='" & firma1 & "', Anrede='" & anrede1 & "', Vorname='" & Vorname1 & "', Nachname='" & Nachname1 & "', Straße='" & Straße1 & "', PLZ=" & PLZ1 & ", Ort='" & Ort1 & "', E-Mail='" & TextBox6.Text & "', Handynummer=" & TextBox1.Text & ", Festnetznummer=" & TextBox2.Text & "Where Vorname ='" & vr1 & "' AND Nachname ='" & na & "'"

        Try

            con.Open()

            adapter.UpdateCommand = con.CreateCommand

            adapter.UpdateCommand.CommandText = sql

            adapter.UpdateCommand.ExecuteNonQuery()

            MsgBox("Row updated  !! ")

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

Bei Fragen meldet euch einfach.

lg

simon

Geschrieben

Hast du die Tel.-Nummern als Zahl in der DB, weil die ja auch mit 0 anfangen können.

Wenn das Strings sein sollen, fehlen die Hochkommas.

Was bekommst du denn überhaupt für Fehlermeldungen??

Geschrieben
anzunehmen. aber du erwartest jetzt nicht ernsthaft, das wir für dich die hochkommata suchen oder? ^^

Von dir erwarte ich gar nichts. :rolleyes:

hm okay jetzt nicht wundern habe die db nich erstellt aber alle einträge sind seltsamer weiße als strings angegeben. nun hab ich überall hochkommas eingefügt sieht dann so aus:


sql = "update Kontakte SET Firma ='" & firma1 & "', Anrede='" & anrede1 & "', Vorname='" & Vorname1 & "', Nachname='" & Nachname1 & "', Straße='" & Straße1 & "', PLZ='" & PLZ1 & "', Ort='" & Ort1 & "', E-Mail='" & TextBox6.Text & "', Handynummer='" & TextBox1.Text & "', Festnetznummer='" & TextBox2.Text & "' Where Vorname ='" & vr1 & "' AND Nachname ='" & na & "'"


Der fehler sieht wie folgt aus:

System.Data.OleDb.OleDbExeption: Syntaxfehler in Update-Anweisung.

Bei

System.Data.OleDb.OleDBCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)

Bei

System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object&executeResult):rolleyes:

Geschrieben
Von dir erwarte ich gar nichts. :rolleyes:

hm okay jetzt nicht wundern habe die db nich erstellt aber alle einträge sind seltsamer weiße als strings angegeben. nun hab ich überall hochkommas eingefügt sieht dann so aus:


sql = "update Kontakte SET Firma ='" & firma1 & "', Anrede='" & anrede1 & "', Vorname='" & Vorname1 & "', Nachname='" & Nachname1 & "', Straße='" & Straße1 & "', PLZ='" & PLZ1 & "', Ort='" & Ort1 & "', E-Mail='" & TextBox6.Text & "', Handynummer='" & TextBox1.Text & "', Festnetznummer='" & TextBox2.Text & "' Where Vorname ='" & vr1 & "' AND Nachname ='" & na & "'"


Der fehler sieht wie folgt aus:

System.Data.OleDb.OleDbExeption: Syntaxfehler in Update-Anweisung.

Bei

System.Data.OleDb.OleDBCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)

Bei

System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object&executeResult):rolleyes:

Ich weiß nicht wie Access reagiert wenn am Ende kein ; ist, aber ich könnte mir vorstellen, dass Access das nicht automatisch setzt.

Jede SQL-Anweisung braucht das eigentlich am Ende,

Geschrieben

sql = "update Kontakte SET Firma ='" & firma1 & "', Anrede='" & anrede1 & "', Vorname='" & Vorname1 & "', Nachname='" & Nachname1 & "', Straße='" & Straße1 & "', PLZ='" & PLZ1 & "', Ort='" & Ort1 & "', E-Mail='" & TextBox6.Text & "', Handynummer='" & TextBox1.Text & "', Festnetznummer='" & TextBox2.Text & "' Where Vorname ='" & vr1 & "' AND Nachname ='" & na & "'"

wenn ich diese SQL-query sehe, wird mir schlecht.

was spricht gegen die verwendeung von DataSet und gebundenen parametern?

du erleichterst dir dadurch die fehlersuche und sparst 90% deiner (und fremder) zeit.

schönes beispiel:

Add OleDbCommand Parameter : OleDbCommand Parameter Database ADO.netVB.Net

zu OLE DB generell:

OleDbCommand-Klasse (System.Data.OleDb)

s'Amstel

Geschrieben

wenn ich diese SQL-query sehe, wird mir schlecht.

was spricht gegen die verwendeung von DataSet und gebundenen parametern?

l

wofür ein Dataset wenn nur eine Tabelle besteht?

Da reicht ein Datatable vollkommen aus.

Dank dir trotzdem.

PS: die querry sieht allerdings recht bescheiden aus, liegt daran das ich die nur mal professorisch reingeschrieben hab für schnellen testzweck.

Geschrieben (bearbeitet)
du meinst wahrscheinlich provisorisch

Oha sehr peinlich :old .

Zum Thema zurück, ich habe die querry etwas kürzer und damit übersichtlicher gefasst und siehe da, es hat geklappt. Kann es sein, das bei dem Updatebefehl keine leeren Felder bei SET genannt werden dürfen ? (Letzte Idee)

In meiner DB ist auf jeden Fall der NULL Wert auf erlaubt gesetzt.

Bearbeitet von Gateway_man
Geschrieben

wie kann man ein solchen SQL in einer zeile schreiben?!

-> schnelle wartbarkeit = 0

-> fehleranalyse = selbst schwer gemacht

In meiner DB ist auf jeden Fall der NULL Wert auf erlaubt gesetzt.

du schreibst aber keine NULL in das feld sondern einen leeren String, hat also damit nix zu tun.

was ich mir vorstellen kann ist, dass das feld E-Mail probleme macht wegen dem minus.

Ted

Geschrieben
das hat nichts damit zu tun, dass es in einer stringvariable steht.

darauf bin ich nich weiter eingegangenm da er ja auch

sql = "update Kontakte SET Firma ='" & firma1 & "' ...."

firma in ' ' schreibt.

also entweder nur irgendwo herkopiert und keine gedanken drueber gemacht warum das so ist... oder keine ahnung :P

Geschrieben
darauf bin ich nich weiter eingegangenm da er ja auch

sql = "update Kontakte SET Firma ='" & firma1 & "' ...."

firma in ' ' schreibt.

also entweder nur irgendwo herkopiert und keine gedanken drueber gemacht warum das so ist... oder keine ahnung :P

Kopiert, sicher nicht, :hells: dachte nur nicht das der sql befehl dies als minus interpretiert.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...