Kleines Problem mit Update Befehl

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Xero.

    Kleines Problem mit Update Befehl

    Hallo liebe Community,

    ich habe mich jetzt schon lange nicht mehr mit MySQL beschäftigt, brauche es aber gerade in diesem Moment wieder.
    Ich bin dabei einen kleinen Online Manager für meine Firma zu programmieren.
    Beim Login habe ich eine Abfrage gemacht, wo Email und Passwort abgefragt wird.
    Wenn der Login erfolgreich war hab ich noch ein Update Befehl hinzu gefügt der die Spalte "Status" updated und dort ne "1" für "Online" rein schreibt!
    So. Das hat auch alles wunderbar funktioniert. Falls der Login fehlschlägt wird eine Nachricht zurückgegeben, dass der Login fehlgeschlagen ist. Bla bla bla.

    Mein Problem liegt jetzt beim Logout.
    Ich habe in meiner MainForm ein MenuStrip angelegt mit dem Reiter Datei -> Abmelden...
    Wenn ich darauf klicke soll wieder eine neue Verbindung zu der selben Datenbank erstellt werden und in der Tabelle "Accounts" die Spalte "Status" auf "0" für
    "Offline" gesetzt werden. So sieht mein Code aus für den Update Befehl für Offline gehen.

    Ganz oben natürlich

    VB.NET-Quellcode

    1. Imports MySQL.Data.MySQLClient


    Aber jetzt der Code

    VB.NET-Quellcode

    1. Dim conn As New MySqlConnection
    2. conn.ConnectionString = "server=XXXX;" & "user id=XXXX;" & "password=XXXXXX;" & "database=XXXXX;"
    3. Try
    4. conn.Open()
    5. Dim Cmd As New MySqlCommand
    6. Cmd.Connection = conn
    7. Cmd.CommandText = "UPDATE Accounts SET Status='0' WHERE Email='" + Login.txt_email.Text + "'"
    8. Cmd.ExecuteScalar()
    9. conn.Close()
    10. Login.Show()
    11. Me.Close()
    12. Catch ex As Exception
    13. MsgBox("Du konntest nicht abgemeldet werden!", MsgBoxStyle.Critical, Title:="Critical Error")
    14. End Try


    Doch wenn ich auf abmelden klicke bleibt der Wert auf "1" weil ich mich ja vorher eingeloggt habe und wird aber nicht aktualisiert auf "0"...

    Kann mir jemand helfen?
    Vielleicht fehlt ja etwas.
    Ich bin gerade ziemlich am verzweifeln, weil ich es vorher immer geschafft habe :S

    Naja danke schon im Voraus ^^

    Xero schrieb:

    Doch wenn ich auf abmelden klicke bleibt der Wert auf "1" weil ich mich ja vorher eingeloggt habe und wird aber nicht aktualisiert auf "0"...

    also wenn obiger Code ohne Fehler durchgeht, wird wohl was geändert werden inne DB.

    Was macht dich denken, es werde nichts geändert?
    Achso - kann natürlich sein, dass die angegebene Email garnet existiert.

    kriegt man als rückgabe von ExecuteScalar nicht die Anzahl der geänderten Datensätze?

    Achnee - das war ExecuteNonQuery()

    Letzteres wäre hier wohl das angemessenere.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()