Gateway_man Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 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
El Ninjo Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 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??
0815FIA Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 anzunehmen. aber du erwartest jetzt nicht ernsthaft, das wir für dich die hochkommata suchen oder? ^^
Gateway_man Geschrieben 7. Juli 2009 Autor Geschrieben 7. Juli 2009 anzunehmen. aber du erwartest jetzt nicht ernsthaft, das wir für dich die hochkommata suchen oder? ^^ Von dir erwarte ich gar nichts. 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)
El Ninjo Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Von dir erwarte ich gar nichts. 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) 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,
Gateway_man Geschrieben 7. Juli 2009 Autor Geschrieben 7. Juli 2009 Das mit dem semikolon hab ich ausprobiert. Es kommt weiterhin der fehler Werd mir nochmal n paar Beispiele geben. Trotzdem danke PS: Hier die genaue Fehlermeldung:
Amstelchen Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 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
Gateway_man Geschrieben 8. Juli 2009 Autor Geschrieben 8. Juli 2009 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.
Guybrush Threepwood Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 du meinst wahrscheinlich provisorisch
Gateway_man Geschrieben 8. Juli 2009 Autor Geschrieben 8. Juli 2009 (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 8. Juli 2009 von Gateway_man
T3D Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 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
0815FIA Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 was ich mir vorstellen kann ist, dass das feld E-Mail probleme macht wegen dem minus. Ted stimmt, das könnte sein. einfach mal [E-Mail] probieren.
Gateway_man Geschrieben 8. Juli 2009 Autor Geschrieben 8. Juli 2009 Hm hat geklappt, lag doch tatsächlich an dem Bindestrich bei E-Mail. Habt Dank.
T3D Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 ja das is auch ganz logisch, denn 1 minus ist ein operator... du sagst mit dem was du geschrieben hast in worten "E MINUS MAIL"
Gateway_man Geschrieben 8. Juli 2009 Autor Geschrieben 8. Juli 2009 ja das is auch ganz logisch, denn 1 minus ist ein operator... du sagst mit dem was du geschrieben hast in worten "E MINUS MAIL" Obwoh es in einem String steht?
T3D Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 Obwoh es in einem String steht? wo steht es denn im string?
Amstelchen Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 das hat nichts damit zu tun, dass es in einer stringvariable steht. die datenbank interpretiert den bindestrich zur laufzeit als minus, nicht der compiler. s'Amstel
T3D Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 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
Gateway_man Geschrieben 9. Juli 2009 Autor Geschrieben 9. Juli 2009 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 Kopiert, sicher nicht, :hells: dachte nur nicht das der sql befehl dies als minus interpretiert.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden