MySQL Update / Where Problem

chenjung

Benutzer
Beiträge
10
Hallo ihr lieben,

ich habe zur Zeit ein Problem mit dem Update meiner Datenbank (Formular ist eine VB From welche Kundendaten aufnimmt und diese in meiner Datenbank speichert, was auch sehr gut geht) welche Änderungen einfach nicht übernimmt?

Zuvor hatte ich das Problem, das bei dem Update, alle vorhanden Daten überschrieben wurden. Wie ich raus fand, lag das daran, da ich kein WHERE verwendet habe. Dies habe ich nun, heißt, die Daten werden nicht überschrieben, allerdings auch nicht abgeändert?

Hier der Code:
SQL = "UPDATE daten SET name='" & text_name.Text & "',an='" & text_an.Text & "',ort='" & text_ort.Text & "',plz='" & text_plz.Text & "',tele='" & text_tele.Text & "',mobil='" & text_mobil.Text & "',email='" & text_email.Text & "',geb='" & text_geb.Text & "',kfz='" & text_kfz.Text & "',marke='" & text_marke.Text & "',gestell='" & text_gestell.Text & "',bau='" & text_bau.Text & "',lass='" & Text_lass.Text & "'WHERE name = 'name'"

Habt ihr vielleicht eine Idee, wo mein Fehler liegt? Ich wollte bei WHERE erst die id nutzen, dachte aber der Name sei besser?
 
Werbung:
Zuvor hatte ich das Problem, das bei dem Update, alle vorhanden Daten überschrieben wurden. Wie ich raus fand, lag das daran, da ich kein WHERE verwendet habe. Dies habe ich nun, heißt, die Daten werden nicht überschrieben, allerdings auch nicht abgeändert?

Ding Dong. Genau, mit WHERE schränkt man ein. Aber was ist mit dem Fragezeichen?


Ich wollte bei WHERE erst die id nutzen, dachte aber der Name sei besser?

Warum fragst Du uns das? Wir wissen doch nicht, nach welchen Kriterien Du Daten ändern willst. Vielleicht ja auch in Abhängigkeit der Körpertemperatur. Das ist Deine Entscheidung.

Ist denn Dein SQL überhaupt syntaktisch korrekt?
 
Ding Dong. Genau, mit WHERE schränkt man ein. Aber was ist mit dem Fragezeichen?

Warum fragst Du uns das? Wir wissen doch nicht, nach welchen Kriterien Du Daten ändern willst. Vielleicht ja auch in Abhängigkeit der Körpertemperatur. Das ist Deine Entscheidung.

Ist denn Dein SQL überhaupt syntaktisch korrekt?

Erst mal danke für deine Antwort :)

Was meinst du mit dem Fragezeichen?

Ich sollte wohl besser sagen, die id bleibt unverändert, daher habe ich den Namen gewählt. Aber, würde dies nicht bedeuten, ich müsste jedes Feld in WHERE eintragen, da ich ja jetzt noch nicht weiß, was ich ändern will bzw. muss? Oder reicht im WHERE nur ein Feld aus um danach auch alle anderen Daten zu ändern? (Wenn ich das Update-Problem gelöst habe!)

Ist denn Dein SQL überhaupt syntaktisch korrekt?
Davon gehe ich mal aus, zumindest was das abspeichern angeht / abrufen, das läuft ohne weitere Probleme. Nur das Thema Update macht mir Kopfzerbrechen.
 
"... welche Änderungen einfach nicht übernimmt?"
und
" ... Daten werden nicht überschrieben, allerdings auch nicht abgeändert?"

Was passiert denn nun? Werden die Änderungen übernommen? Die Bedeutung des Fragezeichens im Allgemeinen ist Dir schon bekannt, oder?


Das WHERE dient der eindeutigen Kennzeichnung der Datensätze, Deine Aussage bzw. Frage "Aber, würde dies nicht bedeuten, ich müsste jedes Feld in WHERE eintragen" ist Bullshit. Für solche Updates verwendet man in der Regel ein Where auf den Primary Key.
 
Nun, ich kann:
- einen Datensatz erstellen (dieser wird in die DB geschrieben)
- einen Datensatz laden und die Daten einsehen (sprich diese werden in die Textfelder geladen)

Beim Versuch, die Aufgerufenen Daten jetzt zu ändern, geht nicht. Zwar erhalte ich die Meldung "Daten geändert" aber in der Datenbank tut sich nichts.

PS: Ein Fragezeichen bezeichnet eine Frage? Ich denke eher, ich habe eben nicht ganz verstanden was du wolltest. Dachte dies bezog sich auf den Quelltext.
 
Ich sehe gerade, die Meldung (mein VB Prorgamm erstellt diese Meldung) wird über die MSG Message von VB.NET ausgegeben. Für das Programm ist es wohl ein Erfolg, zeigt somit keine weitere Details an. Ausnahme würde hier eine Fehlermeldung machen, da hier der SQL Fehler ausgegeben würde.

Code:
Data.Close()
MySql.Close()

MsgBox("Die Daten wurden erfolgreich bearbeitet", vbInformation, "Erfolg")

Catch ex As Exception
MsgBox(ex.Message, vbCritical, "Fehler")
 
Werbung:
Name ist in der gesamt Struktur nur einmal vorhanden und es ist zur Zeit auch nur ein Datensatz in der Datenbank.

PS: Jetzt geht es !?!?! :confused:

PPS: Danke für deine Geduld. Ich habe in der WHERE Abfrage Bezug auf die Listbox gemacht und siehe da, es geht ^^
 
Zuletzt bearbeitet:
Zurück
Oben